• 【vuex】


    在这里插入图片描述

    vuex原理图

    在这里插入图片描述
    Vue Components可以与Mutations直接联系,即可直接调用commit
    在这里插入图片描述

    需要store存储
    在这里插入图片描述
    在这里插入图片描述

    总结:
    1、需要知道Actions,Mutations,State
    2、以上都为对象数据类型
    3、方法都需要通过store调用
    4、要所有的组件都能看到store

    搭建vuex环境

    在这里插入图片描述
    1、npm i vuex@3
    //因为vue2只支持vuex3
    2、在mian.js中引入vuex,且use()一下
    在这里插入图片描述
    3、创建store
    (1)方式一
    在这里插入图片描述
    (二、官方文档)
    在这里插入图片描述
    在index.js文件中,创建并暴露store

    //该文件用于创建vuex 中最为核心的store
    
    //引入Vuex
    import vuex from "vuex";
    //准备actions,用于响应组件中的动作
    const actions={}
    //准备mutations,用于操作数据(state)
    const mutations={}
    //准备state,用于存储数据
    const state={}
    
    //创建并暴露store
    export default new Vuex.Store({
        actions: actions,
        mutations: mutations,
        state: state
    })
    //创建store
    const store = new Vuex.Store({
        actions:actions,
        mutations:mutations,
        state:state
        /*
        可以触发:属性名和数据名相同
        actions,
        mutations,
        state*/
    })
    
    //暴露/导出store
    export default store
    
    
    /*
    export default命令
    import命令在加载变量名或函数名时,需要事先知道导出的模块的接口名,否则无法加载。可以使用export default命令指定模块的默认输出接口。
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    4、在main.js中导入store

    //引入store
    import store from "@/store/index";
    
    
    • 1
    • 2
    • 3

    `在这里插入图片描述

    5、此时运行会出错

    解决方法:
    将Vue.use(Vuex)剪切到index.js中,在index.js中导入vuex

    最终main.js代码:

    import Vue from 'vue'
    import App from './App.vue'
    //引入插件
    // import vueResourse from 'vue-resource'
    
    
    Vue.config.productionTip = false
    
    //使用插件
    // Vue.use(vueResourse)
    
    
    //引入store
    import store from "@/store/index";
    
    //创建vm,全局事件总线
    new Vue({
      render: h => h(App),
      store,
      beforeCreate() {
        Vue.prototype.$bus = this
      }
    
    }).$mount('#app')
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    最终index.js代码

    //该文件用于创建vuex 中最为核心的store
    
    //引入Vuex
    import vuex from "vuex";
    import Vue from "vue/types/index";
    
    //使用vuex
    Vue.use(vuex)
    
    //准备actions,用于响应组件中的动作
    const actions={}
    //准备mutations,用于操作数据(state)
    const mutations={}
    //准备state,用于存储数据
    const state={}
    
    
    //创建并暴露store
    export default new Vuex.Store({
        actions: actions,
        mutations: mutations,
        state: state
    })
    //创建store
    const store = new Vuex.Store({
        actions:actions,
        mutations:mutations,
        state:state
        /*
        可以触发:属性名和数据名相同
        actions,
        mutations,
        state*/
    })
    
    //暴露/导出store
    export default store
    
    
    /*
    export default命令
    import命令在加载变量名或函数名时,需要事先知道导出的模块的接口名,否则无法加载。可以使用export default命令指定模块的默认输出接口。
    */
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
  • 相关阅读:
    在命令行下使用Apache Ant
    C++ -std 编译标准
    电脑游戏录屏软件,记录游戏高光时刻
    chromium源码的下载与编译
    力扣第376题 摆动序列 c++ 贪心
    人工智能考证初步探索
    【MATLAB】兔子机器人总系统_动力学模型解读(及simulink中的simscape的各模块介绍)
    CSS3心跳和小球跳动animation案例
    JAVA学习笔记
    windows TBB的使用
  • 原文地址:https://blog.csdn.net/weixin_44995829/article/details/126584836