项目迭代,要重构出一个可供用户操做的,可自由选择模板,可定制内容的页面。至关于这个单页面上最终展现的全部内容,都是由用户本身去定制完成的。 细想以后以为使用 Vue 来作比较合适,由于页面上大部分操做均可理解为是对整体数据的再排序编辑。下边是记录的开发过程当中一些相对关键的问题。webpack
因为 JS 对象的引用类型特色,在一些不须要双向绑定数据的时候,须要经过深拷贝原始的数据对象来暂存数据,即用 JSON.parse(JSON.stringify(...)) 的方式复制一份数据来进行操做。通常状况下组件间的数据干扰等状况都是因为此问题致使的。ios
最开始作的时候未考虑到这个问题,使用了简单粗暴的方法调取默认数据,即在进入页面的时候复制一份数据充当默认数据。以后发现这个会致使用户操做数据后默认数据也跟着改变的问题。 良好的解决方法就是相互分离,所有都是独立请求。git
Dialog 方面,因为目前 Element 2.0版本是在页面加载时直接将须要用到的全部 Dialog 生成好而后 hide 掉,切换状态时只是执行了 show/hide 操做,考虑到复用性问题,并不是销毁及从新生成,因此在数据的监听更新上会可能存在只有首次才能触发到的问题,处理办法之一就是监听影响对话框显示隐藏的属性,如官方示例中的 dialogVisible ,进而执行对话框显示时的数据更新等操做。github
一方面可经过 webpack-dev-server 添加配置 disableHostCheck: true
来修改它的默认查找 hostname 的行为。也能够配置config > index.js
下 proxyTable 来解决此问题。web
proxyTable: {
'/api': {
target: 'http://api.x.com',
changeOrigin: true,
pathRewrite: {
'^/api': '/api'
}
}
}
复制代码
另:Vue-CLI 的功能是其使用了 http-proxy-middleware 插件 github:github.com/chimurai/ht…json
使用 localstorage 来存储用于区分身份的 ID,根据不一样 ID 使用 axios 来进行服务端的数据请求。 若是牵涉跨域是须要添加 JSONP 模块的。连接:github.com/axios/axios…axios
以上要点是整个首页项目提取出来的一些关键性问题,随着第一个Vue 项目的告一段落,不得不感叹数据驱动型真是简单、便捷、高效。相比以前 jQuery 的查找、绑定 DOM 然后再渲染确实彻底无法比。尝试新事物老是让人兴奋不止。api
补充中。。。跨域
若有问题,欢迎指正!原博地址:tmac.wang/2017/11/%E5…bash