vuex辅助函数的使用,vuex常用方法

http://www.itjxue.com  2023-01-20 00:45  来源:未知  点击次数: 

vuex 的使用,中大型项目必备

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。每一个 Vuex 应用的核心就是 store(仓库)。“store” 基本上就是一个容器,它包含着你的应用中大部分的状态 ( state )。

(1)Vuex 的状态存储是响应式的。当 Vue 组件从 store 中读取状态的时候,若 store 中的状态发生变化,那么相应的组件也会相应地得到高效更新。

(2)改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化。

主要包括以下几个模块:

State:定义了应用状态的数据结构,可以在这里设置默认的初始状态。

Getter:允许组件从 Store 中获取数据,mapGetters 辅助函数仅仅是将 store 中的 getter 映射到局部计算属性。

Mutation:是唯一更改 store 中状态的方法,且必须是同步函数。

Action:用于提交 mutation,而不是直接变更状态,可以包含任意异步操作。

Module:允许将单一的 Store 拆分为多个 store 且同时保存在单一的状态树中。

vuex的基本使用

作用 :

它采用集中式存储管理应用的所有组件的状态。(统一管理所有组件中公用的数据)

组成:

state:管理所有的状态(数据)

getter:state 的计算属性

mutations:用来操作 state

用法 :

1.0 定义

// 在 store/index.js 中

export default new Vuex.Store ({state:{userInfo:''}})

2.0 使用

// 在 .vue(组件) 中

// // 取值

this.$store.state.userInfo

// // 赋值

this.$store.state.userInfo={}

总结:

在 vuex 中,如果要给 vuex 中的数据赋值,不能直接得到 state 去赋值,这样不配合 vuex 设计规范

vuex - mapState 基本使用

它是 vuex 中 state 对应的一个辅助函数

mapState:可以用来简化 vuex 中 state 中属性的使用

步骤:

导入

import { mapState } from 'vuex'

定义

computed:{...mapState(["state中的属性名"])}

使用

this.state中的属性名 ===?this.$store.state.state中的属性名

vuex - mutations 的使用

在?vuex?中,如果要给?state?中的属性赋值,建议大家借助?mutation?来赋值

步骤:

1.0 在?mutations?中定义赋值方法

// 在 store/index.js 中

export? default? new? Vuex.Store({

????state: { userInfo: ' ' },

????mutations: { setUserInfo ( state, payload ) {

????????????state.userInfo = payload

????}

}})

2.0 在组件中调用方法

// 在 .vue(组件) 中

?// 取值

this.$store.state.userInfo

?// 赋值

this.$store.commit('setUserInfo', data)

vuex - mapMutaions 基本使用

mapMutaions : 可能用来简化 vuex 中的 mutations 中方法的调用

步骤:

导入?mapMutations

import { mapMutaions } from 'vuex'

定义方法:

methods:{...mapMutations(['setUserInfo'])}

使用方法:

this.setUserInfo('abc')

总结:

vuex:

state:管理状态

取值:

this.$store.state.xxx

...mapState(['xxx'])? 或者? ...mapState({ myname: 'xxx' })

mutaions

取值:

this.$store.commit('xxx', payload)

...mapMutations(['xxx'])? 或者? ...mapMutations({ myname: 'xxx' })

vuex组件通信

在组件直接使用

总结

~

~

~

非组件中获取通过this.$store.数据名

~

~

vuex使用方式:

方式1

1、 创建容器实例store

2 、容器的状态state里写数据(驱动视图更新的数据)

3、 computed如同 methods,用来 修改 state数据状态的

1、mapState 辅助函数

正确做法:通过mutation修改数据状态

注意-注意-注意:mutation 中不能只能修改 state里的数据

如果需要执行异步操作修改 state状态,则:使用 action

1、 在 action 中做两件事儿:1 执行异步 2 提交mutation修改容器状态

2、 注意:不要在 action 中直接修改容器状态,无法被调试工具观测记录到

3、 因为调试工具只能记录 mutation 的历史改变

1、filter过滤,过滤这个计算属性的数据

步骤:

1、安装、搭建脚手架

线上创建一个仓库(空的)

git status 查看状态

git remote add origin 复制地址

git push -u origin li

1、删除app

- App.vue 、定义出口#app、写路由出口、样式设置局部样式 完成

2、新建router文件、复制 完成

3、新建store文件、复制 完成

4、views两个vue组件删除 完成

5、新建文件、、、dir 、fileter、样式、utils、创建\ 看 文档结果

6、重启服务看下有没有报错(页面)、提交git--调整目录结构

6、vant(杭州有赞开发的)--导入vant

(责任编辑:IT教学网)

更多