资讯专栏INFORMATION COLUMN

Vuex从入门到放弃(webpack自动导入模块 命名空间 辅助函数)

blankyao / 1377人阅读

摘要:从入门到放弃自动导入模块命名空间辅助函数什么是什么是状态管理,驱动应用的数据源,以声明方式将映射到视图,响应在上的用户输入导致的状态变化。最后重点来了外包在职萌新求内推位置广州

Vuex从入门到放弃(webpack自动导入模块 命名空间 辅助函数) 1.什么是vuex 1.1 什么是状态管理

state,驱动应用的数据源;

view,以声明方式将 state 映射到视图;

actions,响应在 view 上的用户输入导致的状态变化。

下面是从官方文档上扒下来的一张图简洁明了的说明了单向数据流的特性

如果单单使用只使用单向数据流的模式进行开发,业务组件不复杂倒还好,可是遇到组件层级比较深的情况下就会导致代码难以维护。
1.2 Vuex

没错!这张图也是从官方文档里面扒下来的,这张图按照我的理解可以拆分成三部分。
1.2.1 第一部分:不经过官方提供的api(mapstate mapactions mapmutations)来触发视图的更新,请看以下例子

index.vue

//index.vue


store/index.js

import Vue from "vue";
import Vuex from "vuex";
Vue.use(Vuex);
 const store = new Vuex.Store({
    state: {
        count: 0,

      },
      mutations: {
        increment (state) {
          state.count++
       
        },
        reduce(state){
            state.count--    
         
        }
      }
    });
export default store;
1.2.2 经过官网提供的辅助函数(语法糖)来触发vuex的状态更新

...mapState 映射为 this.$store.state.xxxx

...mapGetters 映射为 this.$store.getters.xxxx

...mapActions 映射为 this.$store.dispatch("xxx",n);

直接上代码:

//index.vue


//store/index.js
import Vue from "vue";
import Vuex from "vuex";
import getters from "./getters"
import app from "./modules/app"

Vue.use(Vuex);



const store = new Vuex.Store({
  modules:{
    app, 

 },
  getters
})

export default store
//store/getters.js

const getters = {
    // getStateCount(state){
    //     return state.app.count+1
    // }
    getStateCount:state => state.app.count+5
}
export default getters
//store/modules/app.js
const state = {
    count:0
}
const mutations = {
    ADD_ONE:(state,n) => {
        state.count +=n
    },
    REDUCE_ONE:(state,n) => {
        state.count -=n
    }
}

const actions = {
    ADD_ONE:({commit},count) =>{
        commit("ADD_ONE",count)
    },
    REDUCE_ONE:({commit},count) =>{
        commit("REDUCE_ONE",count)
    }
}

export default {
    namespaced: true,//这一行代码添加了 就给vuex添加了一个命名空间
    state,
    mutations,
    actions
  }
还可以通过webpack来自动导入模块 自行查询require.context这个api 网速的文章介绍都很多 这里就不展开了。最后重点来了:外包在职萌新求内推 位置广州

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110276.html

相关文章

  • [vue][plugin][vuex][自总结] - vuex-总结

    摘要:原文出自本人博客的详细总结博主博客兼乎说在前面最近在使用做项目,所以有了总结的念头。在这种情况下,只有当所有触发函数完成后,返回的才会执行。当模块被注册后,它的所有及都会自动根据模块注册的路径调整命名。 原文出自本人博客:vuex的详细总结博主博客--兼乎 说在前面 最近在使用vuex做项目,所以有了总结vuex的念头。于是在本天中午到晚上9点,我一直没有停过,为了能尽快将vuex的重...

    dackel 评论0 收藏0
  • Vuex-一个专为 Vue.js 应用程序开发的状态管理模式

    摘要:的出现就是为了解决这一状况。基本上就是一个容器,它包含着你的应用中大部分的状态。无法直接修改的状态。如果有些状态严格属于单个组件,最好还是作为组件的局部状态。因此解决办法也是相同的使用一个函数来声明模块状态和等等 为什么会出现Vuex 非父子关系的组件如何进行通信?(Event Bus)bus.js import Vue from vue; export default new Vue...

    Freeman 评论0 收藏0
  • Vuex源码学习(一)功能梳理

    摘要:我们通常称之为状态管理模式,用于解决组件间通信的以及多组件共享状态等问题。创建指定命名空间的辅助函数,总结的功能首先分为两大类自己的实例使用为组件中使用便利而提供的辅助函数自己内部对数据状态有两种功能修改数据状态异步同步。 what is Vuex ? 这句话我想每个搜索过Vuex官网文档的人都看到过, 在学习源码前,当然要有一些前提条件了。 了解Vuex的作用,以及他的使用场景。 ...

    livem 评论0 收藏0
  • vuex使用中需要注意的点

    摘要:每一条被记录,都需要捕捉到前一状态和后一状态的快照。在组件中提交你可以在组件中使用提交,或者使用辅助函数将组件中的映射为调用需要在根节点注入。当模块被注册后,它的所有及都会自动根据模块注册的路径调整命名。 vuex中几个核心概念: state, getters, mutations, actions, module getters 可以认为是store的计算属性;与计算属性一样,get...

    妤锋シ 评论0 收藏0
  • 瞎说vuex

    摘要:本来说好写完组件通信后就会写相关的东西,现在快过去两个多月了,主要是由于自己工作的原因,后面会保证更新速度的。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。改变中的状态的唯一途径就是显式地提交。 本来说好写完组件通信后就会写vuex相关的东西,现在快过去两个多月了,主要是由于自己工作的原因,后面会保证更新速度的。不废话了,直接正题。个人博客...

    OBKoro1 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<