Vue组件之间相互传值的方式
1父传子
1.1父组件
1.2子组件:在 props 中添加了元素之后,就不需要在 data 中再添加变量了
2子传父
2.1子组件
2.2父组件
兄弟组件传值一:使用全局函数全局事件
第一步: 在入口文件main.js里暴露一个vue实例
export const EventBus = new Vue() // 暴露一个vue实例
第二步: 在要传值的文件里导入vue实例模块,age使用自己的变量,再定义一个全局触发事件函数,触发事件函数绑定在一个button上
<template><div><h3>用户编辑页面</h3><p>编辑用户</p><p>年龄: {{ age }}</p><p><button @click="changeAge">编辑年龄</button></p></div>
</template>
<script>
import { EventBus } from "../main.js"
// 导入模块
export default {// props: ["age"],data() {return {age: 10,}},methods: {changeAge: function() {this.age = 20EventBus.$emit("editAge", this.age)// 触发全局事件 并且把改变后的值传入事件函数// console.log(EventBus)}}
}
</script>
第三步: 在要被传入值得组件中也导入vue实例模块,也不使用父组件中传过来个age,自己重新定义,创建一个初始化的钩子函数,再使用created钩子函数中使用传值组件的全局定义事件。
import { EventBus } from "../main.js"
export default {data() {return {name : this.myName,age: 10}},methods: {changeParentName: function() {this.$emit('changeParentName', 'xiaohong')// this.$emit('')触发自定义事件},created() {EventBus.$on('editAge', (age) => { // 使用$on去绑定事件this.age = age // 使用es6写法,this刚好指向父级})}
}
兄弟组件传值二:使用全局函数全局事件
第一步: 在父组件中给要传值的兄弟两个都绑定要传的变量。
<app-user-detail :age="age"></app-user-detail>
<app-user-edit :age="age" @editAge="changeAge"></app-user-edit>
第二步: 在要传值得组件中接受变量和绑定触发事件
<template><div><h3>用户编辑页面</h3><p>编辑用户</p><p>年龄: {{ age }}</p><p><button @click="changeAge">编辑年龄</button></p></div>
</template>
<script>
export default {props: ["age"],methods: {changeAge: function() {this.$emit('editAge', 20) // 触发自定义事件并传值}}
}
</script>
第三步: 在父组件中绑定要传组件中的自定义事件
export default {data() {return {name: 'zhuli',age: 10,}},components: {'app-user-detail': UserDetail,'app-user-edit': UserEdit,},methods: {changeAge: function(age) {this.age = age},}
}
总结: 当要传值的组件改变了父组件的变量,父组件又可以把改变的值传值所绑定变量的组件,实现兄弟间传值。
Vue组件之间相互传值的方式相关推荐
- 使用vuex对兄弟组件传值_vue组件之间相互传值的方式
我们都知道 Vue 作为一个轻量级的前端框架,其核心就是组件化开发.Vue 就是由一个一个的组件构成的,组件化是它的精髓,也是最强大的功能之一.而组件实例的作用域是相互独立的,这就意味着不同组件之间的 ...
- Vue 组件之间的传值方式有哪些?
Vue 组件之间的传值方式有哪些? 在平常写Vue项目时,组件传值必不可少,今天我们就要总结一下有哪些种方式呢? 1.父组件向子组件传值(用props) 子组件 <template>< ...
- vue组件之间互相传值:父传子,子传父
vue组件之间互相传值:父传子,子传父 为什么要用到组件间传值? 答:组件实例的作用域是孤立的.这意味着不能 (也不应该) 在子组件的模板内直接引用父组件的数据,也不能直接将子组件的数据传到父组件里面 ...
- vue组件之间的传值(兄弟间的传值)
概要:vue组件之间的传值大致有三种:父传子,子传父,还有兄弟之间,今天我们主要来讲兄弟之间的传值.废话不多说,我们直奔主题 vue 组件兄弟间的传值是要通过一个事件总线来实现(可以把事件总线理解为一 ...
- Vue组件之间的传参方式小总结
学习vue的组件,可能很多人已经了解了组件的创建注册使用,但是随之而来的就是组件之间的通信,父子组件怎么传? 兄弟组件怎么传? 不是父子组件又怎么传? 接下来介绍几种组件之间的传参方式,也是很容易面试 ...
- vue组件间相互传值
一般vue的组件之间的传值分为:父组件传子组件,子组件传父组件,任意组件之间传值. 1.父组件传子组件:(父组件通过v-bind(可以缩写为 :)发送,子组件通过props接收) //父组件中引入子组 ...
- 【Vue知识点】 vue组件之间如何传值
1.父组件 传值 子组件 父组件:<Header :msg='msg'/> 子组件: props:['msg'] props:{ msg:数 ...
- vue组件之间的传值的几种方法
vue组件之间传值的几种方法总结 一.父传子 父传子技术就是把父组件中的数据传给子元素调用,用到的方法是 1.在父组件的子组件标签上绑定一个属性,挂载要传输的变量 ,语法是 :属性名 (冒号加属性名) ...
- Vue组件之间数据通信12种方式
目录 1.父组件向子组件传递数据 props 2.子组件向父组件传递数据($emit的用法) 3.兄弟组件通信 4.ref / $refs 5.eventBus事件总线($emit / $on) 6. ...
最新文章
- 浏览器缓存网站静态文件
- IBM Tivoli Netview在企业网络管理中的实践(附视频)
- 中国联轴器行业发展态势分析及十四五规划建议报告2021-2027年
- 使用js实现时钟效果
- HDU - 5775 Bubble Sort(树状数组)
- 欧洲最权威的12星座分析①
- 8X25Q充电部分软件梳理(CP侧)
- MySQL的四种事务隔离级别实践
- Javascript类的创建
- DALSA相机开发记录(01)
- 影响机器视觉检测系统不稳定性因素分析
- shell基础之编译安装nginx
- SQL:postgresql中在查询结果中将字符串转换为整形或浮点型
- 变压器绕组降低邻近效应_低频变压器初级短路的原因及解决方案
- 通达OA 太牛了!工作流表单设计中级联菜单原来可以这样实现(图文)
- C# CAD批量转换为图片
- 华泰证券python算法工程师_华泰证券高薪诚聘 技术大牛/运维平台架构师
- javascript实现中国地图
- mysql中输出100内质数_SQL 打印 100 以内的质数
- 苹果为什么不能开无线网络连接服务器,苹果手机不能上网怎么办 iPhone网络故障解决【详解】...
热门文章
- 07/08_flink shell,基本原理及应用场景、特点、架构图、集群解剖、JobManager、TaskManagers、tasks和操作链、Session/job集群、组件介绍等、应用场景
- B09_NumPy迭代数组(控制遍历顺序,修改数组中元素的值,使用外部循环,广播迭代)
- Flume日志采集,avro采集,以及通过参数控制下沉到hdfs的文件大小,时间等控制
- 01_JNI是什么,为什么使用,怎么用JNI,Cygwin环境变量配置,NDK案例(使用Java调用C代码),javah命令使用
- 使用DOM解析常用方法
- CSS中通过import方式导入的方法
- java画图板代码_java学习小总结——画图板制做(附代码)
- java list适配器_详解listview的四种适配器模式
- 增强包_情暖冬至 饺子飘香——临沭县兴华学校冬至“趣味包饺子”比赛圆满结束...
- 目标检测算法YOLOv4详解