对vue的了解之vuex篇

1.下载vuex的包管理   npm i vuex@3.0.0

2.在src路径里面创建一个store文件夹,再创建一个index.js文件

//store->index.js里面的内容

import Vue from "vue"
import vuex from "vuex"
Vue.use(vuex)
let store = new vuex.Store({
    //store是vuex的仓库
    state: {
        //要管理的内容,组件之间可以共享state里面的数据,用页面也可以共享数据
        num: 0
    },
    mutations: {

    },
    actions: {},
    getters: {

    },
    modules: {}
})

//导出文件,方便挂载,便于使用
export default store

3.导出之后去main.js里面注册并挂载跟组件app

//main.js文件内容
import Vue from 'vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
//引入axios
import axios from "axios"
//引入管理器文件,默认找index
import store from "@store"

new Vue({
  //使用vuex
  store,
  //路由
  router,
  render: h => h(App)
}).$mount('#app')

4.项目实操

        4.1 $store.state.num   简单使用

        4.2   也可以这样使用    computed: mapState([ "num",   ]),

<template>
  <div>
    <h1>HelloWorld</h1>
<!--也可以这样写-->
    <p>{{ num }}</p>
  </div>
</template>
<script>
//辅助函数
import { mapState } from "vuex";
export default {
  data() {
    return {};
  },
  computed: mapState([
    //写入要映射的值
    "num",
  ]),
  methods: {},
  created() {},
};
</script>

        4.3.在严格模式下strict: true,    actions更改state里面的数据会报错,

//也是用来更改状态,但是它不直接更改state的状态,而是通过提交mutations更改state状态
    actions: {
        //context 上下文参数
        addNum2(context) {
            console.log(context);
            context.state.num2 += 10
        }
    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值