美文网首页
vue项目回顾3【数据管理vuex】

vue项目回顾3【数据管理vuex】

作者: 喵呜Yuri | 来源:发表于2020-01-07 10:11 被阅读0次

结构:

import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
import store_recommend from './recommend'

Vue.use(Vuex);

const store = new Vuex.Store({
  state:{
    width_s:document.documentElement.clientWidth,
    count:1,
    slider:{"isopen":false},
    whichsonglist:false,
    headNav:'head-nav1',
    loading:false,
    ellipsisState:{"open":false,"data":null},
    },
  getters:{
    headNav:state=>state.headNav,
    count:state=>state.count,
    loading:state=>state.loading,
    ellipsisState:state=>state.ellipsisState
  },
  mutations:{
    lodingShow:(state)=>{
      state.loading = true;
    },
    ellipsisFn:(state,item_)=>{
      state.ellipsisState.open = !state.ellipsisState.open;
      state.ellipsisState.data = item_;
    },
    tool_audio:(state,el)=>{
      state.play.play = el;
    },
    currentTime_Fn:(state,time)=>{
      state.play.currentTime_ = time;
    },
    setInterval:(state)=>{
      state.play.currentTime_+=1;
    }
  },
  actions:{
    actionsFn:({commit,state})=>{
      commit('aa');
      console.log('ppppp');
    }
  },
  modules:{
    sr:store_recommend
  }
});

export default store;

五部分:
state :注册数据管理参数
getters :用于获取参数
mutations :改变参数值的方法容器
actions :用来操作多个mutations 方法
modules :分模块管理数据

应用方法如下:
1.数据获取
store/index.js:

  state:{
    count:1
    }
  getters:{
    count:state=>state.count
  },

页面:

 <li> <i class="fa fa-address-book"></i>最近播放<span>{{count}}</span></li>

------------------------------------------------------
  import { mapGetters,mapState,mapActions} from 'vuex'
 export default {
      加入:
      computed:{
        ...mapGetters(['count'])
      },

或者:
只注册state然后直接:

thissong:this.$store.state.thissong.data

2.数据设置(mutations 相关)
不用引用,直接

 this.$store.commit('tool_audio',false);

3.actions 相关

 <li @click="testfn()"> 最近播放<span>23</span></li>

  methods:{
           ...mapActions({testfn:'actionsFn'})
}

相当于:

  methods:{
          testfn(){
              this.$store.dispatch('actionsFn')
          }
}

4.模块
引入模块是为了降低代码中的耦合性,也方便管理
在上文中我们引入了一个store_recommend的模块
state/index.js:

  modules:{
    sr:store_recommend
  }

state/store_recommend.js:

const store_recommend = {
  namespaced: true,
  state:{
    count:1
  },
  getters:{

  },
  mutations:{
    countFn:(state,count)=>{
      state.count+=count;
      }
  },
  actions:{

  }
}
export default store_recommend

应用页面:

 methods:{
        addcount(count_){
            this.$store.commit('sr/countFn',count_)
        }

好啦,该系列完毕嘿嘿

相关文章

  • vue项目回顾3【数据管理vuex】

    结构: 五部分:state :注册数据管理参数getters :用于获取参数mutations :改变参数值...

  • Vuex(state/mutations/getters)

    Vuex是什么? Vuex是Vue配套的公共数据管理工具,我们可以将共享的数据保存到Vuex中,方便项目中的任何组...

  • Vuex最详细教学

    一、Vuex单界面到多界面状态管理切换: 1.安装配置vuex,版本依赖 vue2的项目使用vuex3,vue3的...

  • vuex 使用

    1, vuex 的作用 vuex 是vue配套的 公共数据管理工具,可以把一些共享的数据,保存到 vuex中,...

  • vuejs基础之共有数据vuex

    1 vuex简介 vuex 是 Vue 配套的 公共数据管理工具,它可以把一些共享数据,保存到 vuex 中,方便...

  • 2019-01-19

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

  • React数据管理工具Redux流程分析及基础使用实践

    在vue中,我们使用Vuex来管里我们项目中的数据,而在React中,我们同样有相应地数据管理工具Redux。Vu...

  • vuex状态管理的学习

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

  • Vuex使用

    Vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,方便数据管理,避免数据重复加载,...

  • vuex 解析

    vuex 是 Vue 配套的 公共数据管理工具,它可以实现数据的共享,在复杂的项目中避免了父子/子父/祖孙间通讯的...

网友评论

      本文标题:vue项目回顾3【数据管理vuex】

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