安装、webpack基本配置等基本官网已经够详细了,略1.Routing:——路由懒加载(按需加载):constHome=r=>require.ensure([],()=>r(require('../pages/home/home.vue')),'主页');推荐博文的好处是哪个页面加载相应的路由,节省资源,提高访问速度。——路由跳转:router-link:面试的时候问了很多这个问题,组件和router-link上的点击事件怎么写,大部分回答:直接写...正确姿势:@click.native=当“func”第一次使用Vue时,我还不习惯尝试将它的语法用于一切。一旦有一个页面需要从哪里来,保存的时候要返回到哪里。我当时第一个想到的就是location.back();位置.go(-1);幸运的是,在实习生产品中发现了一个错误。IOS手机,编辑列表页a输入b,在b页点击保存返回列表页a,列表页a数据没有更新,安卓正常。想不到姐姐,一波妈妈。使用vue的this.$router.go(-1);this.$router.back();可以。不知道是什么原因-使用了两个hook来监听源路径和目的路径:beforeRouteEnter的from.path和beforeRouteLeave的to.path场景:产品需求:下单时,如果点击return,弹窗提示会提醒用户再想一想,还是OK离开。这时候beforeRouteLeave判断只要to.path不是下行页面就阻塞,参数next(false)可以阻塞。——一个问题是IOS侧滑有延迟。当你从订单页面滑回来的时候,会先回到上一个页面,稍等一会再回来。目前还没有找到可行的方案(移动端的touch事件已经被禁用,和侧滑是两码事,不在一个层次)。——对于京东和天猫,下单和下载页面禁用侧滑,其他页面正常使用(毕竟我们不是app,不能禁用)——当然,这些都是为了用户体验。如果有合适的方法,可以讨论。——监控源:刚才提到了beforeRouteEnter的from.path,但是外部链接直接访问vue项目,获取到的from.path是“/”,——如果访问我们项目的渠道很多,就会难以区分。——解决方法:1、进入我们的工程必须携带源参数,每个通道必须传递不同的参数。2、当然,如果公司已经在招商了,别人不愿意合作,那就没必要太勉强了。JS提供了一个方法,document.referrer获取源码路径,前提是别人通过href属性进入我们的项目。比如一个tag,location.href2.webpackpackaging:查看各个模块的打包空间:运行:npmrunbuild-report执行后会自动弹出模块占用空间页面,打包前后。如果你发现同一个模块被渲染了多次,那就重试。最常见的公共组件被多人引用,其他资源在组件内部被引用。这时候你可以按需加载这个公共组件。3、第一次使用keep-alive缓存方式:解决列表页,返回记录位置。匹配钩子:我讨论了激活前的一些陷阱补充说明:产品设计需求:转发刷新数据,返回到记录位置(刷新与否),然后在beforeRouteLeave钩子中需要做一些判断,确定需要刷新的页面记录位置b的入口是什么。beforeRouteLeave(to,from,next){this.isOk=false;if(to.path=="/a"||to.path=="/c"){this.isOk=true;}下一个();//这个必须要写}activated钩子需要做的就是初始化所有的数据(和第一次进入页面一样):activated(){if(this.isOk){this.dataList=[];这个.pageNum=1;}}原因是这种模式下created和mounted只触发一次,数据在缓存中。如果不手动清除,数据将不会更新。激活不需要这两个商品。4.可以用computed代替watch,尽量用computed官网,不一定。性能和代码方便,计算也很有优势。场景:购物车,价格计算(一般后台计算,淘宝无网前端计算好,下单打折),页面多个输入框,当所有输入框输入满足条件时,提交按钮高亮,可以点击5.在某些场景下,$nextTick代替setTimeoutdelayer解释:在下一个DOM更新周期结束后执行延迟回调。修改数据后立即使用此方法获取更新后的DOM。当然,这个场景是指数据修改后,DOM没有及时更新。深受js影响,一直想用setTimeout。对了,有时候数组或者对象的数据被修改了,页面没有及时更新。推荐使用this.$set方法,eg:this.$set(data,name,'zhangsan');6.@import引入较少的文件并重复渲染为优化内容。解决方法:@import(reference)'main.less';Less传送门7.安利三级联动,mint-ui,下篇文章单独讲从后台获取上篇文章数据,下一篇我使用纯前端本地或CDN部分json8。客户端搜索——将IOS键盘的‘换行’改为‘搜索’
