本篇内容介绍了“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父子传递的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4582201/blog/4378106