嘿~告诉你个好玩儿的事儿!知道吗,Vue用的那几个你可能不太熟悉的“关键字”—— v-model 其实就像个有点小脾气的聊天机器人,能帮我们轻而易举地在表单控制和组件之间愉快地传递信息呐!
//表单控件上使用v-model {{name}} export default{ data(){ return { name:"", checked:false, } } }
记住,咱父子组件里传消息是单向滴,爸只能给孩子属性,然后孩子$emit通知爸爸。要都想聊天,就得自己搞个v-model!
给你个小技巧!想快速提取’父部件’ form的数据?那就先在相关的’子部件’C-Input中设定对的value属性,改下数据,再用$emit发信息给’父部件’。一触发‘input’事件,数据就能自动更新在form里面了!
切记要填上双倍数据捆绑!这对定制组件太关键了。没这玩意儿的话,你费劲搞出来的定制组件可能会没人知道,那就尴尬!
//父组件import cInput from "./components/Input" export default { components:{ cInput }, data() { return { form:{ name:"", password:"" }, } }, }
聊聊如何搞定这个问题呗!试试那个双向数据绑定的方法。记得在下面的小东西里,用 :value 拿到爸爸传过来的数据,动下手指搞个调整,最后用 $emit 把它发给父组件的 input 事件去。待这一切完成后,新的值又会传回到表格那边,双向数据绑定就这么轻松愉快!
//子组件 cInput export default { props:{ value:{ type:String, default:"", required:true, } }, data() { return { inputValue:this.value, } }, methods:{ handleInput(e){ const value=e.target.value; this.inputValue=value; this.$emit("input",value); }, } }
你说,什么叫做双向数据绑定?没这玩意儿,咱们修改组件东西时,外面的父组件就不会跟着改变。那找毛病得多累!
别找了,快试试这个小技巧!首先,把爸爸那里传来的数字拿到孩子这边来;接着,直接在孩子这里动动手脚更改下;最后,借助一下$emit,给爸爸那个input事件炸个大炮,把改变过的数字还给表单去。这样一整套流程下来,咱们的自定义组件不就是轻松实现双数据绑定了!
都听懂了?现在咱们会双向绑定组件,超级棒,不仅编程用得上,其他方面也超实用。大伙儿快来帮帮忙!就这么说定!希望我说的那些复杂知识能给你帮助。如果还有不懂或想问的,请留言别忘了点赞分享一下那样我们才更有动力!
评论0