Vue2.0 传值方式:

在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来。这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况。当然你也可以用Vuex状态管理工具来实现,这部分我们后续会单独介绍。我先给大家介绍Vue开发中常用的三种传值方式。

Vue常用的三种传值方式有:

  • 父传子

  • 子传父

  • 非父子传值


引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息,如下图所示:

接下来,我们通过实例来看可能会更明白一些:

1. 父组件向子组件进行传值

父组件:

<template><div>父组件:<input type="text" v-model="name"><br><br><!-- 引入子组件 --><child :inputName="name"></child></div>
</template>
<script>import child from './child'export default {components: {child},data () {return {name: ''}}}
</script>

子组件:

<template><div>子组件:<span>{{inputName}}</span></div>
</template>
<script>export default {// 接受父组件的值props: {inputName: String,required: true}}
</script>

2. 子组件向父组件传值

子组件:

<template><div>子组件:<span>{{childValue}}</span><!-- 定义一个子组件传值的方法 --><input type="button" value="点击触发" @click="childClick"></div>
</template>
<script>export default {data () {return {childValue: '我是子组件的数据'}},methods: {childClick () {// childByValue是在父组件on监听的方法// 第二个参数this.childValue是需要传的值this.$emit('childByValue', this.childValue)}}}
</script>

父组件:

<template><div>父组件:<span>{{name}}</span><br><br><!-- 引入子组件 定义一个on的方法监听子组件的状态--><child v-on:childByValue="childByValue"></child></div>
</template>
<script>import child from './child'export default {components: {child},data () {return {name: ''}},methods: {childByValue: function (childValue) {// childValue就是子组件传过来的值this.name = childValue}}}
</script>

3. 非父子组件进行传值

非父子组件之间传值,需要定义个公共的公共实例文件bus.js,作为中间仓库来传值,不然路由组件之间达不到传值的效果。

公共bus.js

//bus.js
import Vue from 'vue'
export default new Vue()

组件A:

<template><div>A组件:<span>{{elementValue}}</span><input type="button" value="点击触发" @click="elementByValue"></div>
</template>
<script>// 引入公共的bug,来做为中间传达的工具import Bus from './bus.js'export default {data () {return {elementValue: 4}},methods: {elementByValue: function () {Bus.$emit('val', this.elementValue)}}}
</script>

组件B:

<template><div>B组件:<input type="button" value="点击触发" @click="getData"><span>{{name}}</span></div>
</template>
<script>import Bus from './bus.js'export default {data () {return {name: 0}},mounted: function () {var vm = this// 用$on事件来接收参数Bus.$on('val', (data) => {console.log(data)vm.name = data})},methods: {getData: function () {this.name++}}}
</script>

☺ Vue三种常用的传值方式就介绍完了,如果有什么不明白的,可以在评论区留言哦!

Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值相关推荐

  1. vue中父子组件先后渲染_vue父子组件传值(子传父,非父子组件传值)

    1. 子组件向父组件传值 子组件: <template><div>子组件:<span>{{childValue}}</span><!-- 定义一个 ...

  2. react中类组件传值,函数组件传值:父子组件传值、非父子组件传值

    父子组件传值.非父子组件传值: 类组件传值 父子 组件传值 子 传 父: 子组件:事件的触发sendMsg=()=>{this.props.person();}父组件:<Child per ...

  3. vue学习【非父子组件传值问题(Bus/总线/观察者模式)】

    如果两个组件是父子关系,就可以通过props的方式传值. 父组件通过props向子组件传值,子组件通过事件触发向父组件传值 那么如果两个组件之间不具备父子关系,该如何传值呢?任何一个网页都可以拆分成几 ...

  4. Vue.js组件-组件通信-非父子组件传值以及其他通信方式

    非父子组件传值 非父子组件指的是兄弟组件或完全无关的两个组件 兄弟组件 兄弟组件可以通过父组件进行数据中转,简单来讲,A是父组件,BC是两个兄弟组,那么我们可以先B传给A,再A传给C.示例如图: Ev ...

  5. Vue非父子组件传值

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.非父子组件传值 二.事件总线 2.$attrs / listeners VueX是笔者认为最稳定的非父子传值的方法 ...

  6. Angular 父子组件传值,非父子组件传值

    一.子组件调用父组件,父组件给子组件传值 引入Input header.component.ts import { Component, OnInit, Input, Output } from '@ ...

  7. 父子组建传值_浅谈Vue父子组件和非父子组件传值问题

    本文介绍了浅谈Vue父子组件和非父子组件传值问题,分享给大家,具体如下: 1.如何创建组件 1.新建一个组件,如:在goods文件夹下新建goodsList.vue goodsList组件 expor ...

  8. 04 非父子组件传值

    一.非父子组件传值 要点: 1.需要在全局vue的实例的原型上挂在一个新的vue实例 2.挂载完之后,就可以让所有的组件通过原型上的vue实例实现一个连接的桥梁 具体实现 1.发送数据者 使用原型上的 ...

  9. Vue组件化开发--组件通信方式-父传子、子传父、非父子组件传值

    一.概述 以脚手架搭建的Vue项目为笔记背景. 如果将所有的代码逻辑全部放到一个组件中,代码是非常的臃肿和难以维护的. 并且在真实开发中,可能会有更多的内容和代码逻辑,对于扩展性和可维护性来说都是非常 ...

最新文章

  1. java映射文件是哪一种xml_java解析xml的几种方式哪种最好?
  2. 调查:Android的领先地位稳固
  3. C++异常处理的实现
  4. SQL 分组统计并返回当前行
  5. ServiceMesh最火项目:Istio架构解析
  6. 分析方法的基础 — 3. 业务与管理的特性,分析与设计的抓手
  7. 关于反射的一些总结(转)
  8. php凑整10算法,凑整法练习题.doc
  9. field list什么意思_时序数据库有什么不一样?
  10. 【学习笔记】函数高级使用技巧:建立函数队列
  11. MATLAB学习笔记之chirp信号的产生
  12. Ubuntu22.04安装网易云音乐实操笔记
  13. hive分区表加载数据
  14. 快讯:迈阿密在建公寓计划为飞行汽车推出天空港口
  15. 如何将BMP文件转换为JPG文件
  16. 笔记———计算机网络原理(三)
  17. 什么是作用域和作用域链以及闭包?
  18. 中国首台超级计算机“天河一号,中国首台千万亿次超级计算机天河一号安装完毕...
  19. 视频号怎么运营?视频号怎么赚钱?零基础玩视频号?创作运营变现,你要的干货都在这了!
  20. NB-IoT窖井井盖解决方案

热门文章

  1. windbg 命令 - !list
  2. STL——STL简介、STL六大组件
  3. 思维模型 塔西陀陷阱
  4. 在windows上部署IIS web服务
  5. 什么是SQL注入式攻击!如何防范SQL注入式攻击?
  6. Javascript 在循环中使用Promise对象
  7. Consider defining a bean of type ‘com.netflix.client.config.IClientConfig‘ in your configuration
  8. Citrix_XenServer-6.1安装过程详解
  9. net start命令的使用
  10. DIV背景半透明 样式