您好,登录后才能下订单哦!
本篇内容介绍了“Vue父子传递方式怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
实现功能:
1、子组件的input输入,改变父组件信息
2、父组件对子组件1,3进行监听与控制
3、子组件1与子组件3相互关联
父子双向通信流程:
子组件的input通过事件监听->控制子组件的data中变量/向父组件$emit子事件及变量
父组件监听到$emit事件及变量,赋予父组件的变量,通过props传到子组件
<body> <div id = "app"> <!-- //将父组件num1的数据传给props中的pnumber1,实现父传子 //监听子组件num1change事件,这里recdnum1函数,没明白加括号出错 --> <cnp :pnumber1 = "num1" :pnumber3 = "num3" @num1change = "recdnum1" @num3change="recdnum3" > </cnp> </div> <!-- //template 编写自己的模版 --> <template id = "mytemp"> <div> <h4>props:{{pnumber1}}</h4> <h4>child-data:{{dnumber1}}</h4> <h4></h4> <input type="text" :value="dnumber1" @input="num1input"> <h4>props:{{pnumber3}}</h4> <h4>child-data:{{dnumber3}}</h4> <input type="text" :value="dnumber3" @input="num3input"> </div> </template> <script> var app = new Vue({ el:"#app", data(){ return{ //父组件数据库中的默认数值 num1:11, num3:31, } }, methods:{ //监听事件中,将子组件传来的dnumber1传给num1,num1传给pnumber1 recdnum1(value){ //默认传递来的value为String,根据需要转为Int或Float this.num1 = parseInt(value); }, recdnum3(value){ this.num3=parseFloat(value); } }, components: { cnp:{ template:"#mytemp", props: { pnumber1:{ //默认props的数据格式和默认值 type:Number, default:1 }, pnumber3:{ type:Number, default:3 } }, data(){ return{ //将props的数值赋予data中变量 dnumber1:this.pnumber1, dnumber3:this.pnumber3 } }, methods: { num1input(event){ //将input中的数值传给dnumber1 this.dnumber1 = event.target.value; //向父组件发射事件num1change,并传出dnumber1数据 this.$emit("num1change",this.dnumber1); //绑定pnumber3数值的关联性 this.dnumber3=this.dnumber1*5; //向父组件发射pnumber3信息 this.$emit("num3change",this.dnumber3); }, num3input(event){ this.dnumber3 = event.target.value; this.$emit("num3change",this.dnumber3) }, } } } }); </script> </body>
Vue是一款友好的、多用途且高性能的JavaScript框架,使用vue可以创建可维护性和可测试性更强的代码库,Vue允许可以将一个网页分割成可复用的组件,每个组件都包含属于自己的HTML、CSS、JavaScript,以用来渲染网页中相应的地方,所以越来越多的前端开发者使用vue。
“Vue父子传递方式怎么实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。