这篇文章主要介绍vue中如何使用v模型完成组件间的通信,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
vue的优点
vue具体轻量级框架,简单易学,双向数据绑定,组件化,数据和结构的分离,虚拟DOM,运行速度快等优势,vue中页面使用的是局部刷新,不用每次跳转页面都要请求所有数据和DOM,可以大大提升访问速度和用户体验。
在子组件中修改了值,父组件中立即更新。
vue中有一个很神奇的东西叫<代码> v模型> 代码,它可以完成我们的需求。
使用<代码> v模型> 代码过程中,父组件我们还是需要将子组件正常引入,只是传值方式改成了<代码> v模型代码>
父组件
& lt; template> ,& lt; div> ,{{fatherText}} ,& lt; Child v模型=癴atherText"祝辞& lt;/Child>//调用子组件,并将,fatherText传递给子组件 ,& lt; button  @click=癱hangeChild"祝辞changeChildButton ,& lt;/div> & lt;/template> & lt; script> import Child 得到“。/Child.vue"; export default  { ,名字:“father", ,数据(){ ,return { ,fatherText:“我# 39;m fathertext" ,}; }, ,组件:{ ,孩子 }, ,方法:{ ,changeChild (), {=,this.fatherText “father change 从而text"; ,} ,} }; & lt;/script>
子组件
& lt; template> ,& lt; div> ,& lt; p 类=癱hild", @click=癱hange"在{{fatherText}} & lt;/p>//正常使用fatherText的值,并添加一个修改值,的方法 ,& lt;/div> & lt;/template> & lt; script> export default  { ,名字:“child", ,模型:{//添加了模式方法,用于接收v模型传递的参数 道具:大敌;“fatherText",,//父组件中变量的传递 ,事件:“changeChild",//事件传递 }, ,道具:{ ,fatherText:{//正常使用道具接收fatherText的值 ,类型:字符串 ,} }, ,数据(){ ,return { , ,}; }, ,方法:{ ,改变(){ 时间=this.fatherText 才能;& # 39;son change 从而文本# 39; ,} ,} }; & lt;/script>
在这里,报了一个错误,这是因为数据流是单向的,但是我们在这里,子组件不应该直接修改道具里的值。
& lt; template> ,& lt; div> ,& lt; p 类=癱hild", @click=癱hange"在{{childText}} & lt;/p> ,& lt;/div> & lt;/template> & lt; script> export default  { ,名字:“child", ,模型:{ 道具:大敌;“fatherText",,//父组件中变量的传递 ,事件:“changeChild",//事件传递 }, ,道具:{ ,fatherText: { ,类型:字符串 ,} }, ,数据(){ ,return { ,childText: this.fatherText //定义自己的变量childText ,}; }, ,方法:{ ,改变(){=,this.childText “son change 从而test";//修改自己的变量 ,} ,} };
两个组件间更新
完成了上述代码,你会发现两个组件都改变的内容,但是只更新了自身组件的内容,如何使两个组件进行同步更新呢?
这里需要使用我的方是不是想找人法,来进行监听传递组件的变量
& lt; template> ,& lt; div> ,& lt; p 类=癱hild", @click=癱hangeChild"在{{childText}} & lt;/p> ,& lt;/div> & lt;/template> & lt; script> export default  { ,名字:“child", ,模型:{ 道具:大敌;“fatherText",,//父组件中变量的传递 ,事件:“changeChild",//事件传递 }, ,道具:{ ,fatherText: { ,类型:字符串 ,} }, ,数据(){ ,return { ,childText: this.fatherText ,}; }, ,方法:{ ,changeChild (), {=,this.childText “son change 从而test"; ,} }, ,看:{ ,fatherText (newtext),{//使用父组件中变量名为函数名,监听fatherText的变化,如果变化,则改变子组件中的值=,,this.childText  newtext; }, ,childText (newtext),{//监听子组件中childText变化,如果变化,则通知父组件,进行更新 这。美元发出(“changeChild",, newtext); ,} ,} };vue中如何使用v模型完成组件间的通信