vue父组件向子组件传递数据
vue父组件怎么向子组件传递数据呢?不知道的小伙伴来看看小编今天的分享吧!
vue父组件向子组件传递数据的方法有四种:props和event、ref、provide和inject、vuex。
1、props和event
父组件向子组件传递props数据,子组件通过触发事件向父组件回传数据,代码如下:
//子组件
<template>
<div @click="changeName('YYY')">{{name}}</div>
</template>
<script>
export default{
props:['name'],//or props:{name:{type:String,default:''}}
methods:{
//不能在子组件修改props数据,应触发事件让父组件处理
changeName(newName){
this.$emit('changeName',newName)
}
}
}
</script>
//父组件
<template>
<div>
<child-comp :name="name" @changeName="changeName"></child-comp>
</div>
</template>
<script>
import childComp from 'path'
export default{
data(){
return {name:'XXX'}
},
components:{
childComp
},
methods:{
changeName(newName){
this.name = newName;
}
}
}
</scritp>
以上就是一个完整的流程,父组件通过props将数据传递给子组件,子组件则触发事件,由父组件监听,并做相应处理。
2、ref
ref属性可定义在子组件或原生DOM上,如果在子组件上,则指向子组件实例,如果在原生DOM上,则指向原生DOM元素(可以用做元素选择,省去querySelector的烦恼)。
传递数据的思路:在父组件内通过ref获取子组件实例,然后调用子组件方法,并传递相关数据作为参数。代码如下:
//子组件
<template>
<div>{{parentMsg}}</div>
</template>
<script>
export default{
data(){
return {
parentMsg:''
}
},
methods:{
getMsg(msg){
this.parentMsg = msg;
}
}
}
</script>
//父组件
<template>
<div>
<child-comp ref="child"></child-comp>
<button @click="sendMsg">SEND MESSAGE</button>
</div>
</template>
<script>
import childComp from 'path'
export default{
components:{
childComp
},
methods:{
sendMsg(){
this.$refs.child.getMsg('Parent Message');
}
}
}
</scritp>
3、provide和inject
官方不推荐在生产环境使用
provide意为提供,当一个组件通过provide提供了一个数据,那么它的子孙组件就可以使用inject接受注入,从而可以使用祖先组件传递过来的数据。代码如下:
//child
<template>
<div>{{appName}}</div>
</template>
<script>
export default{
inject:['appName']
}
</script>
// root
export default{
data(){
return {
appName:'Test'
}
},
provide:['appName']
}
4、vuex
vue官方推荐的全局状态管理插件。
-
immd混动系统的缺陷是什么?
本田i-mmd混合动力系统没有什么太明显的缺陷,如果说有,也只能说在后期维修方面要稍微贵一些,电池寿命衰减也比较厉害。关于i-mmd混合动力系统:I-MMD全称是Intelli...
问答查看全文>> -
奥迪q5手机怎么连接
奥迪q5连接手机方法:把手机和Q5的蓝牙打开,用手机蓝牙搜索Q5的蓝牙并建立配对,在TEL功能里设置好蓝牙连接后,再进入MEDIA按右上角键选择蓝牙,连接上按media的按键,...
问答查看全文>> -
php工程师指的是什么
php工程师指的是什么?以下是详细介绍:php工程师是对使用php语言进行web应用系统开发的人的统称,主要分为php初级工程师、php中级工程师和php高级工程师三个等级。P...
科技查看全文>> -
大货车刹车鼓怎么降温?
大货车刹车鼓降温的方法如下:1、首先要造个淋水箱,水箱底部装一个滤杯,过滤铁锈泥沙。在车内装两个三档淋水电开关。用于控制刹车鼓、前轮、后轮、轮边等淋水;2、在大梁边装两个淋水电...
问答查看全文>>
推荐
- 1什么是儿童奶粉189
- 2大车车辆购置税怎么算?435
- 3车辆行驶证过期未审是否扣分吗?279
- 4php开发工程师怎么分等级275
- 5拼多多的竞争优势是如何建立的227
- 6小学二年级名言名句203
- 7为什么不能右侧超车446
- 8进新房的祝福语,搬新房子的祝福语162