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
相关推荐
南_山无梅落5 天前
从传统Web到API驱动:使用Django REST Framework重构智能合同审查系统
重构·django·vue·drf
PD我是你的真爱粉6 天前
API 请求封装(Axios + 拦截器 + 错误处理)
前端框架·vue
biyezuopinvip7 天前
基于Spring Boot的投资理财系统设计与实现(毕业论文)
java·spring boot·vue·毕业设计·论文·毕业论文·投资理财系统设计与实现
biyezuopinvip8 天前
基于Spring Boot的投资理财系统设计与实现(任务书)
java·spring boot·vue·毕业设计·论文·任务书·投资理财系统设计与实现
huohuopro8 天前
Vue3 Webview 转 Android 虚拟导航栏遮挡问题记录
android·vue
码界筑梦坊9 天前
332-基于XGBoost与SHAP的可穿戴设备亚健康风险识别系统
python·数据分析·flask·vue·毕业设计
上单带刀不带妹9 天前
【Axios 实战】网络图片地址转 File 对象,附跨域解决方案
开发语言·前端·javascript·vue
SuperEugene9 天前
前端模块化与 import/export入门:从「乱成一团」到「清晰可维护」
前端·javascript·面试·vue
~央千澈~10 天前
优雅草正版授权系统 - 优雅草科技开源2月20日正式发布
python·vue·php·授权验证系统
Roc.Chang10 天前
Vite 启动报错:listen EACCES: permission denied 0.0.0.0:80 解决方案
linux·前端·vue·vite