当前位置:家常菜>百科>科技>正文

vue父组件向子组件传递数据

人气:435 ℃/2024-07-30 06:08:45

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官方推荐的全局状态管理插件。

  • 大众速腾中控台共振异响,新速腾中控台异响解决

    大众速腾中控台异响第一步先倾听噪声来源,开着车上路,找一段颠簸的路、路面粗糙的柏油路试车,找出声音的来源,最容易出现异响的部位有汽车驾驶员侧的保险盒、中控DVD机部位、副驾驶手...

    问答查看全文>>
  • 汽车尾灯更换有什么步骤?

    如果是更换汽车尾灯灯泡价格在十几元左右。如果是更换总成价格比较高。车型不同价格也不一样。汽车尾灯:1、后位置灯:从车辆后方观察,用于表明车辆存在和宽度的灯;2、后转向灯:用于向...

    问答查看全文>>
  • 汽车气门油封老化什么症状?

    汽车气门油封老化症状是会发生漏油;气门油封漏油会造成机油损耗加快;排气管后面冒蓝烟;会导致机油泄漏到气缸里,从而形成“烧机油”现象。气门油封损坏的判断方法如下:1、将进气歧管拆...

    问答查看全文>>
  • 长安逸动汽油滤芯在哪

    长安逸动的汽油滤芯是从油箱出来的那个部件即是。汽油滤芯有两种,一种是外置的,在底盘上,油路上连接,圆柱体的;另一种就是内置,在油箱里面,打开油箱盖子,可看到汽油泵,汽油泵拆开汽...

    问答查看全文>>
  • 八字的经典励志句子

    1、项庄舞剑,意在沛公。2、己所不欲,勿施于人。3、勇与拼搏,自强不息。4、自强不息,厚德载物。5、学而不厌,诲人不倦。6、有则改之,无则加勉。7、你若安好,便是晴天。8、奋勇...

    句子查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2024 家常菜 All Rights Reserved. 手机版