美文网首页react & vue & angular
vue项目里面引入vuex

vue项目里面引入vuex

作者: SY | 来源:发表于2022-07-13 17:19 被阅读0次

vuex是一个专为vue.js应用程序开发的状态管理模式,他采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

简而言之就是大家都要用的数据,大家都不要拿,放在vuex中

安装

npm i vuex --save

安装vuex报错
如果直接安装vuex,不指定版本的话,就会直接安装最新的vuex的版本


image.png

解决办法
1.检查一下适应的Vuex版本号

npm view vuex versions --json

2.安装特定的版本,如版本3.6.2

npm i vuex@3.6.2 --save

基本使用

Base

先在src路径下建立store文件夹 然后在文件夹里面建立index.js文件 src/store/index.js

import Vue from "vue"
import Vuex from "vuex"
 
Vue.use(Vuex);
 
export default new Vuex.Store({
    state:{
        name:"name",
        age:"age",
        pathName: "",
        currDbSource: "1234516",
        currJobData: {},
        DbSource: []
    },
    mutations:{
        // 保存当前菜单栏的路径
        savePath(state,pathName){
            state.pathName = pathName;
        },
        // 保存当前点击的数据源
        saveCurrDbSource(state,currDbSource){
          console.log("220");
            console.log(currDbSource);
        },
        // 保存当前点击的元数据
        saveCurrJobData(state,currJobData){
            state.currJobData = currJobData;
        },
        // 保存所有数据源
        saveDbSource(state,DbSource){
            state.DbSource = DbSource;
        }
    }
})

main.js

// 1.引入
import Vue from 'vue'
import App from './App.vue'
import router from './router';
// 引入vuex-store
import store from './store/index';

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

组件中 比如在mounted方法里面打印

 mounted(){
    console.log("使用vuex");
    console.log(this.$store.state.currDbSource);//获取vuex里面的公共参数对象
    this.$store.commit('saveCurrDbSource',"123"); //调用vuex里的公共方法
  },

模板中:

<!-- A组件 -->
<template>
  <div class="container">
      <h3>This is A 组件</h3>
      <h5>姓名: {{ $store.state.name }}</h5>
            
      <!-- 通过 仓库.commit('方法名', '参数') 修改数据 -->
      <button @click="$store.commit('changeWang')">王昭君</button>
      <button @click="$store.commit('changeName', '貂蝉')">貂蝉</button>
  </div>
</template>

<!-- B组件 -->
<template>
  <div class="container">
      <h3>This is B 组件</h3>
      <h5>姓名: {{ $store.state.name }}</h5>
      <h5>年龄: {{ $store.state.age }}</h5>
  </div>
</template>

总结—vuex是单向数据流
state --> components -->dispatch --> actions --> commit --> mutations --> 修改(mutate) --> state --> components …

💡state 决定了 components 展示的样子,然后在组件中可以通过 dispatch 触发 actions 做逻辑,然后 actions 会 commit 到 mutationas ,mutations 开始修改(mutate),修改完成后 state 发生变化,从而 components 再次发生改变

相关文章

  • vue项目里面引入vuex

    vuex是一个专为vue.js应用程序开发的状态管理模式,他采用集中式存储管理应用的所有组件的状态,并以相应的规则...

  • vuex状态管理的学习

    学习vuex首先要在vue的项目中安装vuexcnpm i vuex -S引入vuex 并注册import Vue...

  • 小结

    项目构建介绍 参考 vuex demo 及 答题重构 Vue 版本建立项目结构 引入 vue-loader 使用 ...

  • Vuex

    引入vuex: npm install vuex --save 在项目的src里面建立文件夹store,文件如...

  • Vuex

    vuex的作用是在vue的项目中方便与页面与页面之间值的传递。 一. 安装vuex,使用命令 二. 引入vuex ...

  • vue项目中引入vuex

    store文件夹结构: counter.js: index.js: vue页面: commit调用的是mutati...

  • VUEX的使用

    1.引入VUEX 1.通过vue ui引入2.手敲npm install vuex --save 2.VUEX的项...

  • VUEX

    main.js 中引入vueximport vuex from 'vuex'Vue.use(vuex )new V...

  • vuex 的学习

    yarn add vuex 添加 vuex 的依赖vuex 引入方式和 vue-router 一样

  • 2019-01-19

    Vue+Vuex+axios+sass项目: 抽空整理了一下使用vue-cli创建vue项目并在项目中使用Vuex...

网友评论

    本文标题:vue项目里面引入vuex

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