一段实习
项目结构
vue cli配置
-
vue cli 2
- /build cli内置webpack配置代码
- /config 项目开发环境配置
- dev.env.js 开发环境变量
- index.js 可自定义的webpack配置
- prod.env.js 生产环境变量
-
vue cli 3
- vue.config.js
- 前身为config/index.js,但改文件通过判断process.env值设置不同环境配置
- 环境变量配置在根目录的.env.mode文件中配置
- vue.config.js
Vuex 更规范的使用
- 独立store的state,getters,mutations,actions属性为独立文件
- 不直接访问state,而是通过getters中get开头的方法访问
- vuex-persistedstate插件让vuex数据持久化,支持指定持久化的state,使用storage或者cookie
ant-design全局方法
- import {…按需引入组件} from ‘ant-design-vue’
- Vue.use(‘组件’).(‘组件’)…
- Vue.prototype.$error = Modal.error(…)…,添加全局方法
i18n国际化
- /locales/index.js引入en/zh.json数据,作为插件Vue.use
- new VueI8n实例并导出
- .vue文件使用$t(‘key’, {具名: 值})使用国际化文本
- router中直接使用i18n.t访问或者借助meta保存国际化key值
git版本管理
- git checkout -b 新建分支名
- git checkout -d 删除分支名
- Pull Request 提交pr
- Approve and merge 合并至主分支
- git stash / git stash pop 栈入栈出
CMS页面优化
- 问题:
- swiper绑定大量数据
- 后台返回列表数据过大
- 解决
- 根据日期,动态控制swiper绑定的数据
- 滚动添加绑定数据,元素开销与img请求减少压力
vue数据传递
-
v-model双向绑定
- 父组件声明双向绑定prop,子组件接受指定prop并指定双向事件
- 父子prop同名,父子间model绑定值唯一
-
$attrs / $listeners
- 访问当前组件的所有attr和监听事件
- 可用于跨层处理
-
prop.sync / $emit(prop:update)
- 父子组件的prop自动同步
- 不要求同名称,且允许同步多个prop
创建虚拟dom
- vm.$createElement(tag, attrOptions, childElementsArr)
- Vue实例方法创建虚拟DOM,作为ant-design的属性的参数传入
vue动画
- .v-enter, .v-enter-active, .v-enter-to, v-leave, .v-leave-active, .v-leave-to
- fixed + transiton + transform 实现组件切换动画
- 配合Router beforeEach钩子动态设置不同路由页面的进入/退出动画
request请求封装
- request/api.js包含axios的拦截器配置,4个请求方法导出(host从process.env.变量设置)并赋予Vue类上
- request/address.js包含所有请求接口路径值,赋予到Vue类上
- .vue文件中请求时调用全局请求方法get/post..,将对应$address值作为参调用请求方法