您现在的位置是:网站首页> 编程资料编程资料
vue3自定义组件之v-model实现父子组件双向绑定_vue.js_
2023-05-24
350人已围观
简介 vue3自定义组件之v-model实现父子组件双向绑定_vue.js_
vue3 v-model父子组件双向绑定
vue3.x移除了vue2.x的model选项,自定义组件双向绑定不在使用以下方法:
// vue2的v-model双向绑定方法 model: { prop: 'value', //3.x默认值改为了modelValue event: 'input' //3.x默认值改为了update:modelValue }, //使用 this.$emit('input', index);vue3.x采用以下方式(v-model默认对应的prop值是modelValue)
父组件:
子组件:
vue3.x可以绑定多个v-model
父组件:
子组件:
vue3.x去掉了v-model的.sync修饰符
其他的比如.trim依然可以使用,新增自定义修饰符
父组件
子组件
vue3 v-model使用(多个 v-model 绑定)
//父组件 setup(props) { const msg = ref("msg"); const foo = ref('123') return{ foo,msg } } {{modelValue}} {{msg}} />
自定义修饰符的用法,
根据官方
//父组件{{myText}} setup(){ return { myText : ref(22); } //不加ref无法做到响应 } //子组件 //自定义修饰符 capitalize 通过modelModifiers prop 提供给组件 忽视any props: { modelValue: String, modelModifiers: { default: () => ({ capitalize: false }) } }, created() { console.log(this.modelModifiers); // { capitalize: true } }, methods: { emitValue(e: any) { let value: any = e.target.value; if (this.modelModifiers.capitalize) { value = value.charAt(0).toUpperCase() + value.slice(1); } this.$emit("update:modelValue", value); } } //对于带参数的 v-model 绑定 props: { foo: { type: String }, fooModifiers: { type: String } } created() { console.log(this.fooModifiers); // { capitalize: true } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- vue自定义加载指令v-loading占位图指令v-showimg_vue.js_
- vue3点击出现弹窗后背景变暗且不可操作的实现代码_vue.js_
- 三种在ES6中将非数组转换为数组的方法详情_javascript技巧_
- vue性能优化之cdn引入vue-Router的问题_vue.js_
- UMD的包导出TS 类型方法示例_JavaScript_
- Node多进程的实现方法_node.js_
- vue中对监听esc事件和退出全屏问题的解决方案_vue.js_
- Node.js基于cors解决接口跨域的问题(推荐)_node.js_
- vue使用Echarts设置数据无效问题记录及解决方法_vue.js_
- JavaScript判断数组成员的几种方法_javascript技巧_
