vue composition api 访问 原vue2中 this.$refs

 1 <el-form class="user-form" ref="ruleFormRef" :model="userForm" status-icon :rules="rules"> 2 <el-form-item label="原密码" prop="oldPass"> 3 <el-input type="password" v-model="userForm.oldPass" auto-complete="off"></el-input> 4 </el-form-item> 5 <el-form-item label="新密码" prop="pass"> 6 <el-input type="password" v-model="userForm.pass" auto-complete="off"></el-input> 7 </el-form-item> 8 <el-form-item label="确认密码" prop="checkPass"> 9 <el-input type="password" v-model="userForm.checkPass" auto-complete="off"></el-input>10 </el-form-item>11 <el-form-item>12 <el-button type="primary" @click="changePassword(‘userForm‘)">修改密码</el-button>13 </el-form-item>14 </el-form>

由于composition api采用函数组合方式编程,无法使用 this 访问vue实例,故无法使用 this.$refs.ruleFormRef 访问form表单。

 

可在 setup 中声明一个具有相同 ruleFormRef 名称的 ref ,初始化为 null :

 1 export default { 2  setup(props) { 3 // Refs 4 const ruleFormRef= ref(null); 5  6 // Hooks 7 onMounted(() => { 8 console.log("ruleFormRef: ", ruleFormRef.value); 9  });10 11 return {12  ruleFormRef13  };14  }15 };

现在你可以通过 ruleFormRef.value 访问form表单。

 

相关文章