最新文章专题视频专题关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
兴才励志成长基地是干什么的 安可电脑和普通电脑的区别 python bytes 北辙南辕手碟音乐叫什么 vue获取url参数 贝雷帽的缺点 toto是什么牌子 js 打开新窗口 我解开蝴蝶结是什么歌 python xlwt 河北有哪些大学 个人超话是什么意思 蓝牙耳机默认音量过大 台州旅游必去十大景点 带王的网名昵称大全 endnote20使用教程 姜黄饮料有哪些 耳机声音小音量已经是最大了 标题可以有标点符号吗 特约正扬是什么平台 八点半跑不跑下一句 python endswith 为什么我的qq突然有了小世界 java quartz 丑橘八月份有卖的吗 python class用法理解 python for 循环 万水是干什么用的 java calendar类 tws互联是什么意思 mysql date类型 python os.walk idea 配置maven tenderjinger什么品牌 primer是隔离霜吗 python os.path.join mysql datetime格式 plesiosaurus是什么恐龙 node环境变量配置 bone隐藏含义
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:李赢赢 时间:2021-12-25 17:07:55
文档

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

vue父组件向子组件传递数据的方法有四​种:props、ref、provide和inject、vuex。1、props:父组件向子组件传递props数据。2、ref:r可定义在子组件或原生DOM上。3、provide:官方不推荐在生产环境使用。4、vuex:全局状态管理插件。
推荐度:
导读vue父组件向子组件传递数据的方法有四​种:props、ref、provide和inject、vuex。1、props:父组件向子组件传递props数据。2、ref:r可定义在子组件或原生DOM上。3、provide:官方不推荐在生产环境使用。4、vuex:全局状态管理插件。

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

以上就是小编今天的分享了,希望可以帮助到大家。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:0731-84117792 E-MAIL:11247931@qq.com

文档

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

vue父组件向子组件传递数据的方法有四​种:props、ref、provide和inject、vuex。1、props:父组件向子组件传递props数据。2、ref:r可定义在子组件或原生DOM上。3、provide:官方不推荐在生产环境使用。4、vuex:全局状态管理插件。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题vue登录注册组件专题vue流程图组件专题vue文件预览组件专题vue简历组件专题vue组件化理解专题vue组件顺序专题vue图表组件库专题设计vue组件专题vue组件间专题vue所有组件专题vue组件示例专题vue外部组件专题vue时钟组件专题vue 组件递归专题vue都有什么组件专题vue向组件传递参数专题vue中父子组件通信专题局部组件vue专题vue的组件有哪些?专题vue组件重新初始化专题
Top