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. selenium停止对PhantomJS的支持

    今天发现最新版本的selenium3.11.0停止对PhantomJS的支持,需要对selenium降级 卸载最新版本:pip3 uninstall selenium 安装历史版本:pip3 inst ...

  2. Oracle设置和修改system和scott的口令,并且如何连接到system和scott模式下

    1.在Oracle数据库中,有个示例模式scott和系统模式system. 2.在安装数据库时只是设置了system的口令,即密码,如果忘记的话可以使用如下办法,首先打开sqlplus工具或者cmd命 ...

  3. Django 后台管理xadmin

    一. xadmin的使用 后台管理在开发中可以给我们提供很大的便利,django自带了一个后台管理admin,不过还有一个xadmin比django自带的好用一些,功能更加强大,为模型提供了版本控制, ...

  4. ELK 环境搭建总结

    开始动手前的说明 我搭建这一套环境的时候是基于docker搭建的,用到了docker-compose,所以开始前要先安装好docker . docker-compose,并简单的了解docker . ...

  5. 在Keras中可视化LSTM

    作者|Praneet Bomma 编译|VK 来源|https://towardsdatascience.com/visualising-lstm-activations-in-keras-b5020 ...

  6. 模块 time datetime 时间获取和处理

    模块_time 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块. 1 延时 time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2 获取当前时间戳tim ...

  7. Java中使用RSA算法加密

    Java中使用RSA算法加密 概述 RSA加密算法是一种非对称加密算法 RSA加密的方式 使用公钥加密的数据,利用私钥进行解密 使用私钥加密的数据,利用公钥进行解密 RSA是一对密钥.分别是公钥和私钥 ...

  8. 五、【Docker笔记】Dockers仓库

    仓库是集中存放镜像的地方,仓库的概念不要与注册服务器做混淆.注册服务器是存放仓库的具体服务器,每个服务器上可能有多个仓库,一个仓库有多个镜像. 仓库又可分为共有仓库和私有仓库,最大的共有仓库即Dock ...

  9. Innodb的三大关健特性

    今天看<MySql技术内幕InnoDB存储引擎>一书,学习了Mysql的三大关健特性,并记录如下: 插入缓冲 双写(double write) 自适应Hash索引 在记录这些特性之前,先对 ...

  10. 8.MSFvenom

    Meterpreter 01 Meterpreter API调用 Meterpreter提供了多种APl调用,在编写自己的脚本时可以使用这些API来提供额外功能或定制功能. 关于ruby的更多信息,请 ...