Vuex给我们的.vue文件结构带来了这些变化

发布时间:2019-05-28 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Vuex给我们的.vue文件结构带来了这些变化脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

使用vuex前后的对比

使用vuex前

//BookRecommend.vue

<script>

import * as API from '../api/index'

export default{
  name:'bookrecommend',
  data () {
    return {
      oBRData:{}
    }
  },
  methods: {
    getBookRecommendData(){
      API.getBookRecommend()
        .then((response)=>{
          this.oBRData = response.data;
          console.log(response)
        })
        .catch((err)=>{
          console.log(err)
        })
    }
  },
  mounted () {
    this.getBookRecommendData();
  }
}

</script>

使用vuex后

//BookRecommend.vue

<script>
import { mapstate } from 'vuex'

export default{
  name:'bookrecommend',
  computed: mapState([
    'index'
  ]),
  methods: {
    
  },
  mounted () {
    this.$store.dispatch('getBookRecommend');
  }
}

</script>

变化

  • 剥离了state的管理

  • 剥离了异步请求

  • .vue文件变得更加"纯粹"了

下面我们就从几个方面来描述一下vuex带给我们的变化。

剥离了state的管理

这个当然是vuex最主要的任务了。

将组件模块的state放到了module中,这里是放在了module/index.js中。

//module/index.js

import * as API from '../../api/index'
import * as types from '../mutation-types'

//BookRecommend.vue单文件的state管理
const state = {
    oBRData: {}
}

const actions = {
    ...
}

const mutations = {
    ...
}

export default {
    state,
    ...
}

剥离了异步请求

上一篇从交互到状态变化的Vuex中说了actions的作用。

将异步处理也放在了module中的module/index.js中。

import * as API from '../../api/index'
import * as types from '../mutation-types'

const state = {
    oBRData: {}
}

//actions方便做异步操作,这里是获取数据
const actions = {
    getBookRecommend({ commit }, playload) {

        API.getBookRecommend()
            .then((response) => {
                commit(types.GET_BOOKRECOMMEND_DATA, {
                    obr: response.data
                })
                console.log(response);
            })
            .catch((err) => {
                console.log(err)
            })
    }

}

const mutations = {
    ...
}

export default {
    state,
    actions
    ...
}

Modules

这个也是上篇文章没说的一个点,具体的见:http://vuex.vuejs.org/zh-cn/m...

最后通过new Vuex.Store将分散的module合并在一起

//组装module和跟级别的模块并导出 store 的地方
import Vue from 'vue'
import Vuex from 'vuex'
import * as actions from './actions'
import * as mutations from './mutations'

import index from './modules/index'

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        where: '发现'
    },
    actions,
    //将modules中的合并
    modules: {
        index
    },
    mutations
})

结果

这就是完整的state树,应该很清晰。

Vuex给我们的.vue文件结构带来了这些变化

脚本宝典总结

以上是脚本宝典为你收集整理的Vuex给我们的.vue文件结构带来了这些变化全部内容,希望文章能够帮你解决Vuex给我们的.vue文件结构带来了这些变化所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。