美文网首页
vuex的使用方法和技巧

vuex的使用方法和技巧

作者: zkzhengmeng | 来源:发表于2019-07-26 10:38 被阅读0次

1.安装vuex

  npm install vuex --save

2.新建store.js文件

import Vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)
export default new Vuex.Store({
    // state为驱动应用的数据源
    state: {
        count:8,
        obj: {"kaiahi":"111"}
    },
    mutations: { //Vuex给我们提供修改仓库 store中状态的唯一办法就是通过提交mutation
        increment(state, value) {
            state.count += value;
        },
        getParam(state, Object) {
            //5.修改state中的数据
            state.obj = Object
        }
    },
    getters: { //  getters 是store的计算属性,类似于computed,对state里的数据进行一些过滤,改造等等
        newCount: state => state.count * 5
    },

    actions: {
        getParamSync(context, Object) { //通过异步请求改变state数据,而matution是同步操作的
            //处理异步操作
            setTimeout(() => {
                //3.通过commit提交一个名为getParam的mutation
                //action 函数接受一个与 store 实例具有相同方法和属性的 context 对象,因此你可以调用 context.commit 提交一个 mutation
                context.commit("getParam", Object)
            }, 500)
        }
    }

})

3.再main.js中引入vuex

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import axios from "axios"
import store from './vuex/store'
import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(Element);
Vue.prototype.$http = axios
Vue.prototype.$http = axios.create({
    headers: {
        "Content-Type": "application/json;charset=UTF-8"
    }, //后台需要格式配置
    baseURL: "/api/", //开发环境请求地址
    //baseURL: "https://www.baidu.com/", //生产环境请求地址
    transformRequest: [function(data) { //数据格式转换
        data = JSON.stringify(data)
        console.log(data)
        return data
    }]
});

var vue  = new Vue({
      router,
    store,
    render: h => h(App),
}).$mount('#app')

4.直接在组件中使用

<template>
    <div class="store">
        <h1>这是store页面</h1>
        <h3>{{count}}</h3>
        <h2 @click="upataCount()">点击改变state.count的值</h2>
        <h4>{{newCount}}</h4>
        <b>{{newCount1}}</b>
    </div>
</template>

<script>
    export default {
        name: 'store',
        data() {
            return {
                num: this.$route.meta.num,
                count: this.$store.state.count,
                newCount:this.$store.getters.newCount
            }
        },
        props: {
            msg: String
        },
        methods: {
            handleChange(value) {
                console.log(value);
            },
            upataCount() {
                this.$store.commit("increment", 10); //调用vuex状态内方法改变原始值
                console.log(this.$store.state.count)
            }
        },
        watch: {
            '$store.state.count': { //监听的用法
                handler: function(val, oldval) {
                    this.count = val
                    console.log('val===' + val)
                    console.log('oldval===' + oldval)
                }
            },
            '$store.getters.newCount':{
                handler:function(val, oldval){
                    this.newCount = val
                    console.log('val===' + val)
                    console.log('oldval===' + oldval)
                }
            }
        },
        computed: { //计算属性的用法
            newCount1() {
                return this.count + this.newCount
            }
        },
    }
</script>
<style scoped>
    h3 {
        margin: 40px 0 0 !important;
    }

    a {
        color: #42b983;
    }
</style>

相关文章

  • vuex的使用方法和技巧

    1.安装vuex 2.新建store.js文件 3.再main.js中引入vuex 4.直接在组件中使用

  • vuex与axios的优化写法

    vuex与axios的优化写法 封装方法 使用方法 vuex: action.js get post put de...

  • 浅谈vue使用vuex

    前言:对于只是维护vue项目的我接触到了vuex,看完之后我对vuex的印象和redux的使用方法差不多,下面我们...

  • Vue中Vuex的使用方法技巧

    备注:此案例是用vue脚手架创建的demo 1、首先要知道什么是Vuex? 在Vue官方网站的解释是:Vuex 是...

  • Vuex

    今天在博客项目中用到了vuex,记录下vuex 的使用方法。Vuex 是一个专为 Vue.js 应用程序开发的状态...

  • vuex使用记录

    副标题:vuex使用详解、vue使用全局变量、vue使用 store 这篇博客主要记录了 vuex的使用方法,简单...

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

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

  • 手写一个Vuex(一)

    手写一个Vuex,命名为myVuex,替换Vuex的引入,其他使用方法不变。如下内容: 首先,先创建myVuex文...

  • 【Vue2】Vuex 基础使用

    本文仅为 vuex 使用方法,如有不对的地方,欢迎指正。项目使用可以直接拉到后面 vuex 实际项目中使用部分。 ...

  • 2018-03-13

    Vuex 进阶——模块化组织 Vuex 前两篇讲解了一下 Vuex 的基本使用方法,可是在实际项目中那么写肯定是不...

网友评论

      本文标题:vuex的使用方法和技巧

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