Vuex中常用知识点(总结)

Vuex中常用知识点(总结)

如果你之前使用过vue.js,你一定知道在vue中各个组件之间传值的痛苦,在vue中我们可以使用vuex来保存我们需要管理的状态值,下面我们就来看一下vuex中常用的一些知识点,希望对大家有一定的帮助。

一、为什么要使用Vuex

1、多个组件依赖同一个状态,使用组件之间通信方法会非常繁琐,例如多层嵌套组件。

2、需要全局保存的数据,例如用户、权限信息,全局系统设置

立即学习“前端免费学习笔记(深入)”;

二、Vuex的五个核心属性

1、state:存储状态

// store.jsconst store = new Vuex.Store({  state: {    count: 0  }});// 组件里获取count值$store.state.count

登录后复制

2、getters:state作为第一个参数,其他getters作第二个参数,返回值会根据他的依赖缓存起来,相当于Vue的计算属性

// store.jsconst store = new Vuex.Store({  state: {    count: 1,    sum: 2  },  getters: {    getCountAndSum: (state,getters) => {      return state.count + state.sum;    }  }});// 其他组件获取getter$store.getters.getCountAndSum

登录后复制

3、mutations:修改状态(同步的),state 作为第一个参数,提交载荷作为第二个参数

const store = new Vuex.Store({  state: {    count: 1   },  mutations: {    increment (state, obj) {      state.count += obj.n;    }  }});// 其他组件调用mutations的方法$store.commit('increment', {n: 100});

登录后复制

4、actions:异步操作(执行mutations的方法,不是直变更状态)

const store = new Vuex.Store({  state: {    count: 1   },  mutations: {    increment (state, obj) {      state.count += obj.n;    }  },  actions: {    increment (context) {      context.commit('increment');    }  }});// 其他组件调用actions的方法$store.dispatch('increment');

登录后复制

5、modules:store的子模块

const a = {  state: {    count: 0  },  getters: {    getCount2 (state, getters, rootState) {      return state.count + 2;    }  },  mutations: {    increment (state, getters, rootState) {      state.count++;      }  },  actions: {    increment (context) {      // context.state.count;      // context.rootState.count;      context.commit('increment');    }  }};const b = {};const store = new Vuex.Store({  modules: {     a,     b  }});// 其他组件调用 (获取state的变量需要加上引入的module的别名)$store.state.a$store.state.b

登录后复制

三、Vuex辅助函数

  
    

count: {{count}}

    

getCount: {{$store.getters.getCount}}

    

sum: {{sum}}

    

getSum: {{$store.getters.getSum}}

      
import {mapState, mapGetters, mapMutations, mapActions} from 'vuex'; export default { name: 'about', data () { return { count: 0, sum: 0 } }, computed: { ...mapState({ count: state => state.count, countAlias: 'count', countPlusLocalState (state) { return state.count + this.localCount; } }), ...mapGetters([ 'getCount', 'getSum' ]) }, mounted () { this.count = this.$store.state.count; this.sum = this.$store.state.a.sum; }, methods:{ ...mapMutations( 'add','addO' ), ...mapActions([ 'add','addO' ]), clickB () { this.$store.dispatch('add'); this.$store.dispatch('addO'); } }}

登录后复制

相关推荐:2020年前端vue面试题大汇总(附答案)vue教程推荐:2020最新的5个vue.js视频教程精选

更多编程相关知识,请访问:编程入门!!

以上就是Vuex中常用知识点(总结)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3023242.html

(0)
上一篇 2025年3月13日 06:04:51
下一篇 2025年3月3日 21:20:30

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Vuex中映射的完整指南

    Vuex 是一把双刃剑。如果使用得当,使用 Vue 可以使你的工作更加轻松。如果不小心,它也会使你的代码混乱不堪。 使用 Vuex 之前,你应该先了解四个主要概念:state、getter、mutation 和 action。一个简单的 V…

    2025年3月13日
    200
  • 详解Vue中的无渲染行为插槽

    在本文中我们讨论 Vue 中的无渲染插槽模式能够帮助解决哪些问题。 在 Vue.js 2.3.0 中引入的作用域插槽显著提高了组件的可重用性。无渲染组件模式应运而生,解决了提供可重用行为和可插入表示的问题。 在这里,我们将会看到如何解决相反…

    2025年3月13日
    200
  • 了解一下Vue中的插槽

    Vue插槽,是学习vue中必不可少的一节,当初刚接触vue的时候,对这些掌握的一知半解,特别是作用域插槽一直没明白。 后面越来越发现插槽的好用。 分享一下插槽的一些知识吧。 一、插槽内容 立即学习“前端免费学习笔记(深入)”; 一句话:插槽…

    2025年3月13日 编程技术
    200
  • vue如何实现一个电子签名组件?

    在生活中我们使用到电子签名最多的地方可能就是银行了,每次都会让你留下大名。今天我们就要用vue实现一个电子签名的面板 想要绘制图形,第一步想到的就是使用canvas标签,在之前的文章里我们使用canvas实现了一个前端生成图形验证码的组件,…

    2025年3月13日
    200
  • 深入了解Vue自带的过滤器

    过滤器是一个通过输入数据,能够及时对数据进行处理并返回一个数据结果的简单函数。Vue有很多很便利的过滤器,本文为大家介绍了vue自带的9种过滤器,希望对大家有一定的帮助。 一、过滤器写法 {{ message | Filter}} 登录后复…

    2025年3月13日
    200
  • vue如何实现局部刷新?(代码示例)

    我们都知道,vue的组件化是他最强大的核心所在,路由也是特别可爱的一部分,但是路由适合一些大型的组件,看url路径的时候会出现变化,但是有时候我们想要一些小的局部小刷新,这个时候就需要用到它的动态组件了。 Vue 自身保留的  元素,可以将…

    2025年3月13日
    200
  • 详解vue中的数据初始化(initState)

    下面vue.js教程栏目带大家了解一下vue中的数据初始化(initstate)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 数据初始化 Vue 实例在建立的时候会运行一系列的初始化操作,而在这些初始化操作里面,和数据…

    2025年3月13日
    200
  • 深入了解vue中的计算属性

    下面vue.js教程栏目带大家了解一下vue中的计算属性。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 一、什么是计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且…

    2025年3月13日
    200
  • 浅谈vue中axios的封装

    下面vue.js教程栏目带大家了解一下vue中axios的封装。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 vue中axios的封装 第一步还是先下载axios cnpm install axios -S 登录后复制 …

    2025年3月13日
    200
  • vue如何动态绑定class?方法介绍

    Vue.js 的核心是一个响应的数据绑定系统,它允许我们在普通 HTML 模板中使用特殊的语法将 DOM “绑定”到底层数据。 被绑定的DOM 将与数据保持同步,每当数据有改动,相应的DOM视图也会更新。基于这种特性,通过vue.js动态绑…

    2025年3月13日
    200

发表回复

登录后才能评论