博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
个人关于vue全家桶开发规范的梳理
阅读量:6116 次
发布时间:2019-06-21

本文共 1709 字,大约阅读时间需要 5 分钟。

v-model的使用

通过合理的设置set() 和get()实现v-model

computed: {  message: {    get () {      return this.$store.state.obj.message    },    set (value) {      this.$store.commit('updateMessage', value)    }  }}

template index.html的配置

常规template下,route对象不能方便的获取

常规template

      
vue-cli

对应的App.vue

这种情况下App.vueHello.vue都不能很方便的获取到this.route,因为并没有渲染在<router-view></router-view>内部。

虽然一般情况下,Hello的位置我们会放导航栏等很少和后台交互的结构,但是还是会需要拿到当前的前端路由做不同的展示。

对index.html进行重新配置 更好的结合vue-router使用

      
vue-cli

在模板中添加<router-view></router-view>可以使整个项目都是基于路由开发的。

可以参考

优先选择赋值操作来修改对象

$watch:在变异(不是替换)对象或数组时,旧值将与新值相同,因为它们的引用指向同一个对象/数组。Vue 不会保留变异之前值的副本。

对数组和对象重新赋值可以实现watch正确的返回旧值和新值

state.list = [...list,{name:0}]state.user = {...,age:9}

将action按照组件对应拆分,将modules按字段含义拆分

当我们将业务逻辑放在action中处理的时候,action的文件也会相应的越来越大。按照组件对应拆分,将一个组件或一个目录对应一个action.js会更好管理。

modules主要用来存储state中的数据,命名和分类应该按照state具体的含义划分

将mutation中的逻辑解耦

如果一段逻辑代码涉及多种更新操作,应该依次调用多个commit进行更新,而不是定义在一个mutation

1. 不做隐式的删除更新等操作

所谓隐式的操作就是给一个数组或对象的其中一种变化提供了多个入口。一方面会出现代码冗余,另一方面会不好维护。

2. 将功能拆分为最小功能

state是用作状态存储,也可以形象的理解为数据库。提供了修改保存的功能但是不考虑逻辑,所以功能尽可能偏向于    把对象a赋值为对象b    把下标为5的对象中name字段的值改为"测试"

不要在mutation中调用另外的mutation

作为一种解决方案这是可行的,但是他是不好的。

实现代码:

将main.js中的vue对象暴露

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

mutation中引用并使用

import vm from '../../main.js''CHANGE_NAME' (state, info) {  state.name.changed = true  vm.$store.commit('ADD_USER', {    type: '1'  })},'ADD_USER' (state, info) {  ...}

VUEX 推荐的做法

actions.js

export function changeUser ({  dispatch,  commit}, info) {  commit('CHANGE_NAME', info)  commit('ADD_USER', info)}

转载地址:http://sevka.baihongyu.com/

你可能感兴趣的文章
Spark综合使用及用户行为案例区域内热门商品统计分析实战-Spark商业应用实战...
查看>>
初学者自学前端须知
查看>>
Retrofit 源码剖析-深入
查看>>
企业级负载平衡简介(转)
查看>>
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
网易跟贴这么火,背后的某个力量不可忽视
查看>>
企业级java springboot b2bc商城系统开源源码二次开发-hystrix参数详解(八)
查看>>
java B2B2C 多租户电子商城系统- 整合企业架构的技术点
查看>>
IOC —— AOP
查看>>
比特币现金将出新招,推动比特币现金使用
查看>>
数据库的这些性能优化,你做了吗?
查看>>
某大型网站迁移总结(完结)
查看>>
mysql的innodb中事务日志(redo log)ib_logfile
查看>>