Vue的组件通讯又称组件传值

一、父子组件传值:

  父组件:

    <子组件名   :动态变量名 (随便起)='你想要传递的数据' ></子组件名>

   子组件:

    利用 prop去接收父组件传过来的值

    props:[ '父组件传递过来的动态变量(可以接收多个)' ]

    ** 注意点

    props属性的优先级要高于data属性(data中的参数值不要和props中的值的名字重复,否则会覆盖)

    父组件传值是单项数据且不能跨代传值

  

二、子父组件传值

    子组件:

    <button  @click='事件名称' ></button>

    methods:{

      事件名称(){

        //利用事件触发器以及自定义事件名称发送数据

        this.$emit('自定义事件名称',数据)

      }

    }

    父组件:

    <子组件 @定义事件名称='事件名称(自己新定义的事件名,用来接收数据,触发事件)'>  </子组件>

    methods:{

      事件名称(e){

        // e 是数据源,就是子组件传递过来的数据

      } 

    }

三、兄弟组件传值(非父子传值)

    实现的方法有三种:

    1 单一事件(缺点,必须在同一个页面,主要用于兄弟组件)

    //在main.js中给Vue实例添加一个方法,接下来所有的组件都可以使用这个方法

        Vue.prototype.eventBus(定义的变量)   = new Vue()

    //自定义的兄弟页面VB.vue页面

      <div><button @click='toA'>传送数据给A</button></div>

      methods:{

        toA( ){

          //发送数据给A

          //调用触发事件

          //$emit('事件名称', 数据)

          this.eventBus.$emit('sendA', this.msg)

        }

      }

    //自定义的兄弟页面VA.vue

      mounted(){

        //调用实时监听事件的变化

        this.eventBus.$on('sendA', (e)=>{

          console.log(e,'接收到b的数据');

          this.dataB = e ;

        })

      }

     2 本地存储方法:

        本地存储:localStorage

        会话存储:sessionStorage

      <button @click = ' toLocal '>本地存储</button>

      methods:{

        toLocal(){

          //localStorage.setItem('本地存储的key','需要存储的数据')

          localStorage.setItem('info',this.info)

        }

      }

      接收本地存储的参数

      mounted:{

        this.info = localStorage.getItem('info(本地存储中的key值)')

      }

      会话存储:sessionStorage(方法一样):

      

      <button @click = ' toLocal '>本地存储</button>

      methods:{

        toLocal(){

          //localStorage.setItem('本地存储的key','需要存储的数据')

          localStorage.setItem('info',this.info)

        }

      }

      接收本地存储的参数

      mounted:{

        this.info = localStorage.getItem('info(本地存储中的key值)')

      }

      3 Vuex状态管理

    

vue的组件通讯的更多相关文章

  1. seventBus(封装) 一个巧妙的解决vue同级组件通讯的思路

    如果在你项目中需要多处用到同级组件通讯,而又不想去写繁琐的vuex,可以参考这个小思路.本人在写项目中琢磨出来的,感觉挺好用,分享一下. 1.在utils文件夹下添加BusEvent.js 注释已经很 ...

  2. vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值

    首先文字简单撸一下 父子传子   -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父   ------在父组件升上自定义一个方法,在子组件里通过this ...

  3. vue同胞组件通讯解决方案(以下为一种另外可用vuex解决)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 深入理解Vue父子组件通讯的属性和事件

    在html中使用元素,会有一些属性,如class,id,还可以绑定事件,自定义组件也是可以的.当在一个组件中,使用了其他自定义组件时,就会利用子组件的属性和事件来和父组件进行数据交流. 父子组件之间的 ...

  5. Vue父子组件通讯

    我们知道,父组件不能修改子组件的数据[这种说法是不严谨的],严谨的说法是:子组件内部不能修改从父组件传递过来的值.原因是vue遵循的是数据单向流原则,父组件传递数据给子组件只能单向绑定,通过Props ...

  6. vue组件通讯之provide / inject

    什么是 provide / inject [传送门] vue的组件通讯方式我们熟知的有 props $emit bus vuex ,另外就是 provide/inject provide/inject ...

  7. 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据

    前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...

  8. Vue组件通讯

    Vue最常用的组件通讯有三种:父->子组件通讯.子->父组件通讯,兄弟组件通讯.(template用的pug模板语法) 1.父->子组件通讯 父->子组件通讯,是通过props ...

  9. Vue组件通讯黑科技

    Vue组件通讯 组件可谓是 Vue框架的最有特色之一, 可以将一大块拆分为小零件最后组装起来.这样的好处易于维护.扩展和复用等. 提到 Vue的组件, 相必大家对Vue组件之间的数据流并不陌生.最常规 ...

随机推荐

  1. mysql字段数据类型、设置严格模式

    表操作 今日内容 1.数据类型 建表的时候,字段都有对应的数据类型 整型 浮点型 字符类型(char与varchar) 日期类型 枚举与集合 2.约束条件 primary key unique key ...

  2. 安装自动化测试工具webdriver与selenium模块

    webdriver是一个驱动,需要与selenium配合使用,selenium是自动化测试和爬虫的专业模块,对于不同的浏览器需要不同的webdriver,这里我用的是ubuntu19.10的系统,以p ...

  3. html5 window.postMessage 传递数据的使用

    window.postMessage(图片介绍): 发送方(图片介绍): 接收方(图片介绍): 个人测试一(iframe): 发送方,地址为:http://localhost:63342/HelloH ...

  4. FormDataBodyPart获取表单文件名乱码解决方法

    FormDataMultiPart formData=; FormDataBodyPart filePart=; filePart.getFormDataContentDisposition().ge ...

  5. IO多路复用(IO Multiplexing)

    什么是IO多路复用 为什么要有IO多路复用 作者总结 遵循学习新知识的三部曲:是什么?为什么?怎么用? 作者前言:IO多路复用本质上是网络通信过程中的一个技术名词. 什么是IO多路复用 一个用机场管理 ...

  6. nginx使用手册+基本原理+优缺点

    一.nginx优点 1.反向代理 1.正向代理: 客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原 ...

  7. iOS 图片圆角性能

    通常设置圆角方式 imageView.clipsToBounds = YES; imageView.layer.cornerRadius = 50; 这样设置会触发离屏渲染,比较消耗性能.比如当一个页 ...

  8. [讲解]prim算法<最小生成树>

    最小生成树的方法一般比较常用的就是kruskal和prim算法 一个是按边从小到大加,一个是按点从小到大加,两个方法都是比较常用的,都不是很难... kruskal算法在本文里我就不讲了,本文的重点是 ...

  9. VLAN基础

    VLAN(Virtual Local Area Network)的中文名为"虚拟局域网".是将一个物理的局域网在逻辑上划分成多个广播域,从而实现二层隔离的技术. 一.VLAN的优点 ...

  10. 改进ls的实现

    一.要求 参见附图,改进你的ls的实现.提交代码运行截图和码云链接 二.步骤 目录 ls 功能:列出目录内容,显示文件信息 ls -l:显示当前工作目录下包含目录及属性详细信息(共7列) 第一列:文件 ...