vue父组件向子组件传递数据
vue父组件怎么向子组件传递数据呢?不知道的小伙伴来看看小编今天的分享吧!
vue父组件向子组件传递数据的方法有四种props和event、ref、provide和inject、vuex。
1、props和event
父组件向子组件传递props数据,子组件通过触发事件向父组件回传数据,代码如下
//子组件
<template>
<div @click="changeNa('YYY')">{{na}}</div>
</template>
<script>
export default{
props:['na'],//or props:{na:{type:String,default:''}}
thods:{
//不能在子组件修改props数据,应触发事件让父组件处理
changeNa(newNa){
this.$emit('changeNa',newNa)
}
}
}
</script>
//父组件
<template>
<div>
<child-p :na="na" @changeNa="changeNa"></child-p>
</div>
</template>
<script>
import childComp from 'path'
export default{
data(){
return {na:'XXX'}
},
ponents:{
childComp
},
thods:{
changeNa(newNa){
this.na = newNa;
}
}
}
</scritp>
以上就是一个完整的流程,父组件通过props将数据传递给子组件,子组件则触发事件,由父组件监听,并做相应处理。
2、ref
ref属性可定义在子组件或原生DOM上,如果在子组件上,则指向子组件实例,如果在原生DOM上,则指向原生DOM元素(可以用做元素选择,省去querySelector的烦恼)。
传递数据的思路在父组件内通过ref获取子组件实例,然后调用子组件方法,并传递相关数据作为参数。代码如下
//子组件
<template>
<div>{{parentMsg}}</div>
</template>
<script>
export default{
data(){
return {
parentMsg:''
}
},
thods:{
getMsg(msg){
this.parentMsg = msg;
}
}
}
</script>
//父组件
<template>
<div>
<child-p ref="child"></child-p>
<button @click="sendMsg">SEND MESSAGE</button>
</div>
</template>
<script>
import childComp from 'path'
export default{
ponents:{
childComp
},
thods:{
sendMsg(){
this.$refs.child.getMsg('Parent Message');
}
}
}
</scritp>
3、provide和inject
官方不推荐在生产环境使用
provide意为提供,当一个组件通过provide提供了一个数据,那么它的子孙组件就可以使用inject接受注入,从而可以使用祖先组件传递过来的数据。代码如下
//child
<template>
<div>{{appNa}}</div>
</template>
<script>
export default{
inject:['appNa']
}
</script>
// root
export default{
data(){
return {
appNa:'Test'
}
},
provide:['appNa']
}
4、vuex
vue官方推荐的全局状态管理插件。
以上就是小编今天的分享了,希望可以帮助到大家。
生活小妙招
- 杭州市小客车总量调控管理暂行规定
- 个人所得税退税的条件和标准 下载个人所得税
- 江苏省南通市通州区天气 江苏省南通通州区天气
- 夫妻有按揭的房子离婚怎么办 夫妻有按揭的房子
- 山东省青岛市市北区天气 山东省青岛市市北区天
- 什么财产离婚后不用分割 什么财产离婚后不用分
- 工伤认定必须满足三个条件 工伤认定申请必须满
- 家暴出轨不受离婚冷静期限制 家暴不适用离婚冷
- 武夷山一周天气预报 武夷山一周天气预报15天准
- 怎么与孩子沟通最有效方法 怎么与孩子沟通的技
- 女方提出离婚财产怎么分割 女方提出离婚财产怎
- 华东五市天气预报 华东五市的天气
- 深圳车辆违章记录查询 深圳车辆违章记录查询
- 老公铁了心要离婚还能挽回吗 老公铁了心离婚的
- 怎么计算工伤十级的赔偿金 工伤十级赔偿计算公
- 武汉天气预报15天气报 武汉天气预报15天