vuex有什么用?

互联网 20-11-9

vuex是基于vue框架的一个状态管理库,可以管理复杂应用的数据状态,可以方便的实现组件之间的数据共享,例兄弟组件的通信、多层嵌套的组件的传值等等;它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,是基于vue框架的一个状态管理库。可以管理复杂应用的数据状态,可以方便的实现组件之间的数据共享,比如兄弟组件的通信、多层嵌套的组件的传值等等。

Vuex采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

Vuex中的核心特性

(1)State: 提供唯一的公共数据源,所有共享的数据都要统一放到Store中的State中存储

在组件中访问State的方式:

A.this.$store.state.全局数据名称 如:this.$store.state.count

B.先按需导入mapState函数: import { mapState } from ‘vuex’

然后数据映射为计算属性: computed:{ …mapState([‘全局数据名称’]) }

(2) Mutation:用于修改变更$store中的数

使用方式:

打开store.js文件,在mutations中添加代码如下:

mutations: {     add(state,step){       //第一个形参永远都是state也就是$state对象       //第二个形参是调用add时传递的参数       state.count+=step;     }   }

然后在Addition.vue中给按钮添加事件代码如下:

<button @click="Add">+1</button>  methods:{   Add(){     //使用commit函数调用mutations中的对应函数,     //第一个参数就是我们要调用的mutations中的函数名     //第二个参数就是传递给add函数的参数     this.$store.commit('add',10)   } }
import { mapMutations } from ‘vuex’ methods:{…mapMutations([‘add’])}
import { mapState,mapMutations } from 'vuex'  export default {   data() {     return {}   },   methods:{       //获得mapMutations映射的sub函数       ...mapMutations(['sub']),       //当点击按钮时触发Sub函数       Sub(){           //调用sub函数完成对数据的操作           this.sub(10);       }   },   computed:{       ...mapState(['count'])          } }

打开store.js文件,修改Action,如下:

actions: {   addAsync(context,step){     setTimeout(()=>{       context.commit('add',step);     },2000)   } }

然后在Addition.vue中给按钮添加事件代码如下:

<button @click="AddAsync">...+1</button>  methods:{   AddAsync(){     this.$store.dispatch('addAsync',5)   } }

(4)Getter:用于对Store中的数据进行加工处理形成新的数据。

export default new Vuex.Store({   .......   getters:{     //添加了一个showNum的属性     showNum : state =>{       return '最新的count值为:'+state.count;     }   } })

然后打开Addition.vue中,添加插值表达式使用getters

<h3>{{$store.getters.showNum}}</h3>

也可以在Addition.vue中,导入mapGetters,并将之映射为计算属性

import { mapGetters } from 'vuex' computed:{   ...mapGetters(['showNum']) }

2020年前端vue面试题大汇总(附答案)

vue教程推荐:2020最新的5个vue.js视频教程精选

更多编程相关知识,请访问:编程教学!!

以上就是vuex有什么用?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: vue
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java函数有哪些?

相关资讯