美文网首页
关于VUEX设置

关于VUEX设置

作者: 2359634711 | 来源:发表于2019-02-19 22:06 被阅读0次

关于VUEX设置

0x01 目录视图

1.新建store文件夹并创建以下文件
image.png

0x02 store各文件设置

1.actions.js(函数外部接口)
const actions = {
  asnycSetListInfoId: ({commit}, id) => commit('SETLISTINFOID', id),
  asnycSetSongInfoId: ({commit}, id) => commit('SETSONGINFOID', id),
  asnycSetSongHref: ({commit}, hrefInfo) => commit('SETSONGHREF', hrefInfo),
  asnycSetCurrentTime: ({commit}, currentTime) => commit('SETCURRENTTIME', currentTime),
  asnycSetPlayFlag: ({commit}, flag) => commit('SETPLAYFLAG', flag),
  asyncSetSongsList: ({commit}, songList) => commit('SETSONGSLIST', songList),
  asyncNextSong: ({commit}, index) => commit('NEXTSONG', index),
  asyncAddSong: ({commit}, songInfo) => commit('ADDSONG', songInfo)
}
export default actions
2.getters.js(顾名思义,获取属性设置)
const getters = {
  listInfoId(state){
    return state.pageId.listInfoId
  },
  currentSong(state){
    //console.log('asd');
    //console.log(state.song.currentSong);
    return state.song.currentSong
  },
  currentTime(state){
    return state.song.currentSong.currentTime
  },
  song(state){
    return state.song
  }
}

export default getters

3.index.js(store入口文件)
import Vue from 'vue'
import Vuex from 'vuex'
import state from './state'
import mutations from './mutations'
import actions from './actions'
import getters from './getters'

Vue.use(Vuex)

export default new Vuex.Store({
  state,
  mutations,
  actions,
  getters
})
4.mutations.js(函数内部执行)
const mutations = {
  INCREMENT (state) {
    state.count = state.count + 5
  },
  SETLISTINFOID(state, id){
    state.pageId.listInfoId = id
  },
  SETSONGINFOID(state, id){
    state.pageId.songInfoId = id
  },
  SETSONGHREF(state, hrefInfo){
    state.song.currentSong.hrefInfo = hrefInfo
  },
  SETCURRENTTIME(state, currentTime){
    state.song.currentSong.currentTime = currentTime
  },
  SETPLAYFLAG(state, flag){
    state.song.currentSong.playFlag = flag
  },
  SETSONGSLIST(state, songList) {
    state.song.songList = songList;
    state.song.currentSong.id = songList[0].id;
    state.song.currentSong.index = 0;
    state.song.currentSong.hrefInfo = {
      url:'http://music.163.com/song/media/outer/url?id='+songList[0].id+'.mp3'
    };
  },
  NEXTSONG(state, index) {
    state.song.currentSong.playFlag = false
    var temp_index = state.song.currentSong.index + index;
    if(temp_index < 0 || temp_index > state.song.songList.length)
      return
    state.song.currentSong.index += index;
    state.song.currentSong.hrefInfo = {
      url:'http://music.163.com/song/media/outer/url?id='+state.song.songList[state.song.currentSong.index].id+'.mp3'
    };
    state.song.currentSong.id = state.song.songList[state.song.currentSong.index].id;
    setTimeout(function() {
      state.song.currentSong.playFlag = true;
    }, 1000);
  },
  _UPDATESONGINDEX(state, index) {
    state.song.currentSong = state.song.songList[index];
  }
}

export default mutations

5.state.js(数据储存)
const state = {
  song: {
    currentSong: {
      playFlag:false,
      currentTime:0,
      index:-1,
      hrefInfo:{},
      title:'',
      singer:''
    },
    songList: [
      {
        index:0,
        hrefInfo:{},
        title:'',
        singer:''
      }
    ]
  },
  pageId: {
    songInfoId: 0,
    listInfoId: 0
  }
}
export default state

0x03 main.js引入

import store from './store'
new Vue({
  el: '#app',
  router,
  render: h => h(App),
  store
})

相关文章

  • 关于VUEX设置

    关于VUEX设置 0x01 目录视图 1.新建store文件夹并创建以下文件 0x02 store各文件设置 1....

  • 模块化vuex,获取、设置数据,及刷新保留数据方法

    前言 1.模块化vuex2.获取vuex中的数据3.设置vuex中的数据4.刷新之后,保留数据 模块化vuex 数...

  • 4.Vuex

    vuex官网 现在将 vuex 整合到我们的 vue-complex 应用中 有关于vuex的详细介绍 ,可以看看...

  • 展开语法

    关于vuex ...mapActions的问题 展开语法

  • 《vue通信2》vuex状态存储及持久化,数据状态监听更新

    1.安装 npm i vuex --save-dev 2.导入vuex 并设置 3.使用基本方法 4.数据提交th...

  • 关于vuex

    -主要是应用在vue.js中管理数据状态的一个库-通过创建一个集中的数据存储,供程序中所有的组件访问--store...

  • 关于vuex

    1、vuex是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。 什么是“状态管理模式”? ...

  • 关于VUEX

    简单的说就是存放一些项目里常用值的地方。如导航菜单,人员信息,地区信息等。 该状态值为响应式的,即数值发生变化时所...

  • vue使用$root设置全局属性

    vue状态管理使用vuex,如果项目不大,逻辑不多,那么我们没必要用vuex给项目增加难度,只需要用$root设置...

  • VUE08--{VUEX}

    VUEX是什么 管理(修改或设置)组件用到的数据的工具。免除了之前组件传值的麻烦。组件传值 VUEX组成 stor...

网友评论

      本文标题:关于VUEX设置

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