美文网首页
5分钟迅速入门vuex用法

5分钟迅速入门vuex用法

作者: 安逸的蓝鲸 | 来源:发表于2018-08-14 23:15 被阅读0次

说在前面:一直想学vuex但碍于没有实践项目,且用vue里的父子组件传值也能解决需要,刚好接到一个需求用的是vuex,所以快速学习vuex。学习vuex能共享状态,方便各个组件间共享状态,尤其对于嵌套层级深的组件间的状态共享具有重要意义

废话不多说,直接看一份vuex的存储文件~麻雀虽小,五脏俱全:

import Vue from 'vue'    //引入vue
import Vuex from 'vuex'   //引入vuex
import axios from 'axios'  //引入axios用于发异步请求
Vue.use(Vuex);

const state = {                      //统一状态管理
     platformId: 0,
     versionList: [],
     commentCount: 0,
}

const mutations = {            //一般只用于对state里定义的状态值更改
   setPlatformId(state, value) {
         state.platformId = value
     },

  setVersionList(state, list) {
       state.versionList = list;
},
}


const getters = {  //用于状态进行计算

//此方法用于格式化评论数,如3000转化成3,000
formatedCommentCount: ({commentCount}) => {

       let re = /\d{1,3}(?=(\d{3})+$)/g;

       let n1 = String(commentCount).replace(/^(\d+)((\.\d+)?)$/, (s, s1,s2)  => (s1.replace(re, "$&,") + s2));
       return n1;
},

const actions = {   //用于异步操作,要有提交到mutation的操作

           getVersionList(context, plat) {
                   axios.get(url, {
                   params: {
                             opeaCode: 'GetVersList',
                             plat: 3}
                               })

                         .then(function (response) {

                               let data = response.data;

                               context.commit('setVersionList', data)}) //提交到mutation方法,以改变状态

                         .catch(function (error) {
                                 console.log(error);});

             }
},

export default new Vuex.Store({

       state,
       mutations,
       getters,
       actions

})

一份store文件建立好了,如何在组件内引用呢?示例如下:

import store from "@/vuex/store";  //引入前面建立好的store文件,地址自定
import { mapState, mapMutations, mapGetters, mapActions } from "vuex"; //引入辅助函数,详情官网

export default {
   store,
   data: () => {
       return {};
       },
 computed: {
     ...mapState([
           "platformId",  //将该组件中需要用的状态添加进来
 ]),
    ...mapGetters(["formatedCommentCount"])
},
methods: {
   ...mapActions([ "getVersionList"]),
   ...mapMutations([
       "setPlatformId",
])
}

这样你就可以正常像vue一样,正常使用这些引入的方法,或状态啦~

相关文章

  • 5分钟迅速入门vuex用法

    说在前面:一直想学vuex但碍于没有实践项目,且用vue里的父子组件传值也能解决需要,刚好接到一个需求用的是vue...

  • Vuex源码解析

    手写vuex核心代码 vuex基本用法 分析 我们是通过new Vuex.store(option)获得一个sto...

  • vuex用法

    前言 看了网上很多关于用vuex的例子,但是千篇一律都是在页面加两个按键加减什么的,或者将一些半吊子理论,但是在实...

  • Vuex 用法

    Vuex简单的来说就是vue项目中的属于状态管理的插件。因为项目中也有用到,下面我说下具体用法。当然很简单的啦。这...

  • VUEX用法

    1. import Vue from 'vue'import Vuex from 'vuex'import mut...

  • vuex用法

    vuex vuex解决不同组件的数据共享,数据持久化。 1.安装: npm install v...

  • 后台管理(4)--- vuex的实际使用(vue)

    今天我们来讨论一下在项目中到底应该怎么使用vuex(vuex还没有入门的同学可以先看这个链接vuex 入门及持久化...

  • 轻松上手Vue - 简化Vuex

    PS: Vuex 对于很多初入门Vue的来说,入门困难,感觉非常绕。 Vuex 是一个专为 Vue.js 应用程...

  • vuex入门详解

    vuex最简单、最详细的入门文档 vuex最简单、最详细的入门文档 如果你在使用 vue.js , 那么我想你可能...

  • vuex入门

    vuex最简单、最详细的入门文档

网友评论

      本文标题:5分钟迅速入门vuex用法

      本文链接:https://www.haomeiwen.com/subject/shbbbftx.html