vuex

本文分享了使用Vuex和Vue.js构建单页应用的实战经验,包括解决编译错误的技巧,深入解析Vuex的mapState、mapActions等辅助函数的用法,以及Vuex的四大核心概念。

vuex

不错的教程:

在按上面的教程搭建项目的过程中,有遇到小面的问题:

1.提示Extra semicolon错误

参考:

.eslintrc.js中的rules添加"semi": ["error", "always"],
webpack.base.conf.js中注释掉如下的内容:

const createLintingRule = () => ({
  // test: /\.(js|vue)$/,
  // loader: 'eslint-loader',
  // enforce: 'pre',
  // include: [resolve('src'), resolve('test')],
  // options: {
  //   formatter: require('eslint-friendly-formatter'),
  //   emitWarning: !config.dev.showEslintErrorsInOverlay
  // }
})

vuex属于vue生态的一部分,记录下使用过程中遇到的问题

1.mapStatemapActions

在看别人源码的过程中,有组件中有看到这样使用,如下:

<script>
    import {mapState, mapActions} from 'vuex'
    export default {
    	data(){
            return{

            }
        },
        mounted(){
            //获取用户信息
            this.getUserInfo();

        },
        props: ['signinUp', 'headTitle', 'goBack'],
        computed: {
            ...mapState([
                'userInfo'
            ]),
        },
        methods: {
            ...mapActions([
                'getUserInfo'
            ]),
        },

    }

</script>

参考:


Vuex运行机制

Vuex运行机制

核心概念

底层原理

  • State - 提供一个响应式数据
  • Getter - 借助Vue的计算属性computed来实现缓存
  • Mutation - 更改state方法
  • Action - 触发mutation方法
  • Module - Vue.set动态添加state到响应式数据中

Vuex最佳实践

1.使用常量替代Mutation事件类型

将事件类型放到一个单独的文件中,非常方便团队协作
mutation事件类型

2.Module

  • 开启命名空间 namespaced:true
  • 嵌套模块不要过深,尽量扁平化
  • 灵活应用createNamespacedHelpers

module

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值