vue 中的ref

vue 中的ref

vue 中的ref

1. ​ ​ref​​ ** 的基本作用**

在 Vue 中,ref 是用来获取 DOM 元素或者组件实例的一种方式。对于 <el-form> 组件,通过 ref 可以获取到该表单组件的实例,进而调用表单组件提供的各种方法和访问其属性。

2. 使用 ​ ​ref​ ​ ** 获取 ​ ​<el-form>​​ ** 组件实例

jsx 复制代码
<template>
	<el-form :model="form" ref="myFormRef">
		<el-form-item label = "姓名">
			<el-input v-model="form.name"></el-input>
		</el-form-item>
		<el-form-item label = "姓名">
			<el-button @click="submitForm">提交</el-button>
		</el-form-item>
	</el-form>
<template>
<script setup>
import {ref} from 'vue';

const myFormRef = ref(null);
const formDate = ref({
	name:''
});

const submitForm = ()	=>{
	myFormRef.value.validate((valid)=>{
		if (valid) {
      console.log('表单验证通过,提交表单');
    } else {
      console.log('表单验证失败');
      return false;
    }
	});
}
<script>
利用 ref 函数创建了一个响应式引用 myFormRef ,并将其绑定到 <el-form> 组件上。
在 submitForm 方法中,通过 myFormRef.value 获取表单组件的实例,然后调用 validate 方法进行表单验证。

**3. ​ ​<el-form>​​ ** 组件实例的常用方法

借助 ref 获取到 <el-form> 组件实例后,能够调用以下常用方法:

  • ​validate(callback)​ :对整个表单进行验证,验证结果会通过回调函数返回。
  • ​validateField(props, callback)​ :对部分表单字段进行验证,props 是需要验证的字段名数组,验证结果通过回调函数返回。
  • ​resetFields()​ :重置表单数据和校验状态。
  • ​clearValidate(props)​ :清除表单的验证信息,props 是可选的字段名数组。

4. 注意事项

  • 初始值为 ​ ​null​ :在组合式 API 里,ref 初始值通常设为 null ,直到组件挂载完成后才会赋值为组件实例。
  • 生命周期问题 :要保证在组件挂载完成之后再去访问 ref 引用的组件实例,不然可能会得到 null 。例如在组合式 API 中,可以在 onMounted 钩子中使用 ref 。
相关推荐
就叫年华吧丶10 小时前
长文档点目录定位总是不准?一个 content-visibility + 平滑滚动引发的连环坑(Vue3 实战)
前端·javascript·算法·vue
今年下半年2 天前
【VUE3】移动端:使用腾讯地图显示区域统计与放大显示资产点位
javascript·前端框架·vue·地图
志尊宝2 天前
Vue3 零基础每日笔记(054):Pinia 三件套详解——state / getters / actions 全搞懂
前端·javascript·vue.js·vue·前端开发
志尊宝8 天前
Vue3 零基础每日笔记(055):组件里正确使用 store——storeToRefs 解构与 $patch 批量修改
笔记·vue·html·前端开发·软件开发
yzy858 天前
Vue中下载或打开文件的JavaScript方法
前端·javascript·vue
溪语流沙10 天前
Django + Vue电商项目第001讲:开篇|注册登录加增删改查,那不是电商
redis·python·mysql·docker·typescript·django·vue
程序员阿黄10 天前
基于 Django 与 Vue 3 的智能实验室预约系统设计与实现
后端·python·mysql·django·vue·毕设
.Hypocritical.10 天前
Vue CLI(vue-cli)和 Vite 超详细对比
vue
志尊宝11 天前
Vue3 零基础每日笔记(040):Vite 创建 Vue3 + TS 项目——企业标配从这一篇开始
笔记·vue·html·前端开发·软件开发
凤城老人11 天前
从零手写开源私有云盘|Flask+Vue3+Electron全栈网盘,单容器一键部署
python·docker·electron·vue