美文网首页
vuex入门使用

vuex入门使用

作者: 孤独的豺狼 | 来源:发表于2020-04-10 13:41 被阅读0次

师傅领进门,修行在个人,从业这么长时间了,以前一直没咋用过Vuex,最近的一个项目中用到了,特来温习一下,本人理解不深,欢迎指正

vuex的使用

1.下载完成vue项目后,先下载vue依赖

cnpm i vuex

2.在main.js中引入vuex

import Vuex from 'vuex'
Vue.use(Vuex);

3.实例化vuex

const store = new Vuex.Store({
//state定义vuex中的变量(相当于vue中的data)
  state: {
    count: 0,
    count2: 0,
  },
//mutations修改vuex的值
  mutations: {
    increment (state) {
      state.count++
    }
  }
})

4.将vuex定义到全局

new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>',
  render: h => h(App),
  store//定义vuex到全局
})

页面中的获取

this.$store.state.count

页面修改vuex值

this.$store.commit('increment');

使用计算属性来展示状态,不太明白计算属性的可以自行在官网查看

<template>
  <div @click="fnClick">{{str2}}
  </div>
</template>
<script>
export default {
    name: "HelloWorld",
  data() {
    return {
        str:this.$store.state.count
    };
  },
  methods:{
    fnClick(){
        this.$store.commit('increment');
//      this.str=this.$store.state.count
    }
  },
  computed: {
    str2() {
      return this.$store.state.count
    }
  }
 }
</script>

以上呢就可以满足基本的vuex的使用了,如果有想稍微深入一点的请继续往下预览

Getter

上面我们知道了vue有一个计算属性,那么接下来我们介绍一下有关vuex中的计算属性
在state同级下添加getter,添加计算属性

getters: {
    doneTodos: state => {
      return state.count2=10;
    }
  }

在页面mounted中查看一下值的变化
this.$store.getters.doneTodos
我们发现值count2变成了10,一般在这里面写一点逻辑性比较强的操作

Action

上面我们看了计算属性,接下来给大家介绍一个异步的操作action,提交的是 mutation,而不是直接变更状态
在state同级下添加Action,添加Action方法后,vuex就可以使用异步的方法了,
main.js

    actions: {
    increment (context) {
      context.commit('increment')
    }
 },

调用方法

this.$store.dispatch('increment')

Module

在state同级下添加Module
Module方法简单来说就是如果业务庞大,要定义很多的变量的时候,我们为了查看方便,使用的一个方法,模块化(将臃肿的代码块细化)
代码结构没有修改,在外面定义,然后在添加到一个Object里面(小编比较懒,moduleA,moduleB是复制的,所以效果有点问题,测试的时候将moduleA或者moduleB注释一下即可看出效果)

const moduleA={
//  定义变量
  state: {
    count2: 0,
  },
//修改值
  mutations: {
    increment (state) {
      state.count2++
    }
  },
//异步操作,改变 mutations
    actions: {
    increment (context) {
      context.commit('increment')
    }
 }
}
const moduleB={
//  定义变量
  state: {
    count: 0,
  },
//修改值
  mutations: {
    increment (state) {
      state.count++
    }
  },
//异步操作,改变 mutations
    actions: {
    increment (context) {
      context.commit('increment')
    }
 }
}
const store = new Vuex.Store({
modules: {
    a: moduleA,
    b: moduleB
  }
})

页面中获取

this.$store.state.a.count2

这是本人对vuex简单的了解,后续还会出更加复杂一点的操作,有啥不对的地方欢迎指正,谢谢

相关文章

  • 2020-03-25 vuex 全集

    Vuex入门(1)—— Vuex的设计初衷和简单使用 https://blog.csdn.net/dkr38020...

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

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

  • vuex入门详解

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

  • vuex入门

    1.入门使用 (1)引入vuex (2)新建src/vuex文件夹,在vuex中新建store.js文件。文件中引...

  • vuex入门使用

    师傅领进门,修行在个人,从业这么长时间了,以前一直没咋用过Vuex,最近的一个项目中用到了,特来温习一下,本人理解...

  • vuex 入门随记

    vuex 入门随记 首先肯定是要安装vuex 这里我们使用npm包管理工具进行安装 npm install vue...

  • Vuex 进阶——模块化组织 Vuex

    上上篇:Vuex 入门 上一篇:Vuex 提升 前两篇讲解了一下 Vuex 的基本使用方法,可是在实际项目中那么写...

  • vuex 简单入门使用

    vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组...

  • nodejs npm vue vuex快速安装使用入门腾讯课堂

    nodejs npm vue vuex快速安装使用入门腾讯课堂视频教程https://ke.qq.com/web...

  • 轻松上手Vue - 简化Vuex

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

网友评论

      本文标题:vuex入门使用

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