Vue-cli-6组件间传值,全局状态管理store

1、父子组件传值

父传子:

页面中定义的数据可以在父组件的标签中使用:name="name1"绑定属性,在子组件页面中使用props的方式进行3  传值

父组件
子组件

父组件中定义的数据,使用绑定属性的方法,给子组件标签绑定属性,然后在子组件页面中使用props和插值表达式来接收数据。(props中的数据不能修改,需要中转),但是在子组件中想要修改父组件传过来的值,此时如果自定义一个update函数,只能修改当前页面的数据,如下图

此时,就需要使用$emit来触发一个自定义事件$emit,格式如下,此处引号中的updateData是自定义事件的名称,其次将当前页面中转props数据的myName和myAge分别定义为name和age。注意格式,里面是一个对象

在父页面中的子页面标签中添加@updateData="updateData",前面的updateData是子页面中自定义事件的名称,后面的updateData是给当前页面定义的一个函数的名称,然后在methods中定义该方法,此处的e就是子页面传给父页面的数据,如下图。最后修改当前页面的数据即可。

2.祖孙组件传值

首先同样可以使用父子组件传值的方式,一层一层从祖级传给父级,再从父级传给子级。

2.1祖级传给子级

在祖级页面中写一个provide方法,该方法返回的对象里面的数据是依赖数据(子组件所需要的数据)。如下图所示

然后在子级页面中创建一个inject数组,里面接收所需传输的数据,此处的数据可以是父级里面注入的数据,也可以是祖级注入的数据(在父级和祖级数据中使用provide),使用inject注入的数据与props一样,不能修改。

2.2祖孙组件传值

在祖先页面中先定义一个方法,并传参,然后将这个方法注入依赖(provide),然后在子孙页面中的inject接收依赖,然后执行父级组件中传出的方法。

2.3兄弟组件传值

在vue的原型对象上添加一个属性叫$bus,该属性是一个vue实例对象,这个技术叫中央事件总线,在vue的入口文件main.js中添加该属性,如下图所示。

在两个兄弟组件中分别写入,如下图所示

4. *全局状态管理 Vuex

1.安装: npm install vuex --save

2.在入口文件main.js中导入并使用 

 import Vuex from ' vuex '

  Vue.use(Vuex)

3.创建全局状态管理对象vuex

4.注册



我们一般在src资源文件夹中单独创建一个store文件夹,然后在该文件夹中创建index.js,然后将上述内容全部迁移至该文件中,此处需要单独引入vue,并且在创建全局状态管理对象时直接导出,如下图所示

最后在入口文件main.js中引导入store


 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容