在Vue中遇到的各种坑 及性能提升

Vue:

(1)    没有再模板里引用data数据,会不会引起update、beforeUpdate生命周期函数的执行?

不会

(2)组件改成异步

(3)v-once

(4)如果不用template属性,直接在页面上写组件名,有些浏览器会把这些非法命名的组件解析错误,这是需要在标签内写正常的标签名,写is属性 is=‘组件名’

提高性能:

如果不需要响应式,直接在Vue实例里挂载一个属性就可以

例如:

This.y=2

这样修改数据,操作是异步的,是为了提高性能,所以数据更新之后的渲染dom是有延迟的

This.xxx=…

所以如果想要得到渲染之后的dom,可以用nextTick方法

Vue项目遇到的问题:

后续添加的元素无法添加样式,因为scoped限制,只要在样式中添加>>>

例如 >>>span

Better-scroll click:true 会导致点击事件触发两次,如果不滑动,点击事件会触发两次,滑动之后better-Scroll会将默认的点击事件干掉,并会自动派发一个点击事件,这时点击事件就只会触发一次

:style用不了过滤器

硬件加速:

触发硬件加速

例如在transform中即使用不到z轴也要加上z轴,x,y,z三个轴都要激活

原文地址:https://www.cnblogs.com/katydids/p/9955490.html

时间: 2024-10-02 19:39:38

在Vue中遇到的各种坑 及性能提升的相关文章

vue中使用keepAlive组件缓存遇到的坑

项目开发中在用户由分类页category进入detail需保存用户状态,查阅了Vue官网后,发现vue2.0提供了一个keep-alive组件. 上一篇讲了keep-alive的基本用法,现在说说遇到的坑. 先说项目中的配置 在App.vue中的设置 在router中增加配置meta 上面这个设置后发现问题了,从category进入detail页后,状态被保存了,返回的时候保存了用户状态,达到了预期效果 但问题在于但从category返回到index后,再由index进入category时依然显

vue中使用腾讯云Im的一些坑

在vue中使用腾讯云Im 通信时,官方给出的文档及sdk提供的都是es5的写法.我们在vue中使用均需要用es6的方式改写sdk的js文件及按自己的业务调用对应的api就ok了 1.对sdk的js文件改写 使用exports方法导出函数.官方原先提供的api不变,只需在外加一层exports方法暴露即可,webim.js里有一处long需要修改,其他不变. 在相应需要的地方引入即可 遇到的一些坑: 曾经使用过低版本的sdk 导致登录成功后一直不能触发回掉函数,本人使用的是version:1.7.

vue03----生命周期、nextTick()、ref、filter、computed、vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到什么问题、踩过的坑)

### 1.vue的组件和实例都有生命周期,而且是一样的 生命周期:(组件从创建到销毁的过程) 创建 挂载 更新 销毁 组件到达某一个阶段就会自动触发某一些函数,这个函数就叫生命周期的钩子函数. 创建:组件创建的时候触发 beforeCreate created     组件刚创建的数据请求 挂载:创建完成挂载前后触发 beforeMount mounted     DOM的初始化操作 更新:数据发生改变的时候触发 beforeUpdate updated     数据的变化监听,尽量不要在这里

better-scroll在vue中的坑

在我们日常的移动端项目开发中,处理滚动列表是再常见不过的需求了,以滴滴为例,可以是这样竖向滚动的列表,如图所示: 也可以是横向滚动的导航栏,如图所示: 可以打开"微信 -> 钱包->滴滴出行"体验效果. 我们在实现这类滚动功能的时候,会用到我写的第三方库,better-scroll. 什么是 better-scroll better-scroll 是一个移动端滚动的解决方案,它是基于 iscroll 的重写,它和 iscroll 的主要区别在这里.better-scroll

vue中的坑 --- 锚点与查询字符

在vue中,由于是单页面SPA,所以需要使用锚点来定位,在vue的官方文档中提到过也可以不使用锚点的情况,就是在vue-router中使用history模式,这样,在url中就不会出现丑陋的#了,但是这样的缺点在于不能再页面中再使用自己设定的锚点(利用href.name或id)并且需要后台的支持,所以一般我们使用带#的形式就可以了. 而在这之中一种比较特殊的情况在于,如果查询字符串和vue中的锚点同时出现,那么他们的位置关系是怎样的问题, 通过测试可以发现,vue自身的锚点在查询字符串之前或者在

vue 中生成二维码之爬坑之路

最近在做vue中项目,有个需求是在你提交信息后把后台返给你的链接生成二维码. 一共使用了两种生成二维码的方法 1.vue-qr 这个是在一进入页面直接生成二维码,具体介绍见文档:https://www.npmjs.com/package/vue-qr; 2.qrcode 这个可以,符合我的要求 tempalte: <canvas id="canvas" ></canvas> script: 引入: import VueQr from 'qrcode' 组件: c

七、vue中v-for有时候对页面不会重新渲染,数组变化后如何到渲染页面

v-for不能进行双向数据绑定,页面渲染完成后,再次更改v-for遍历的数据,js里面打印的数据看到数据值已经更改,但是页面的数据就是没有渲染,这是为什么呢? vue中v-for和angularjs中的ng-repeat不用 ,它对页面只进行一次渲染.后续如果需要更改数据且显示在页面上就需要想想其他办法啦~~~ 经过多次踩坑发现如下解决办法: 1.将vue引入当前页面,如下图所示: 2.使用Vue.set方法来对数据进行更改及渲染,如下图所示:

vue中修改子组件样式

一.全局修改 1.在App.vue中设置,引入公共样式及个别页面的特殊样式common.css: 例如:<link rel="stylesheet" type="text/css" href="static/assets/css/common.css"> 下边的写法没用过参考链接中给的 <a href="http://home.cnblogs.com/u/134870/" target="_blan

vue中解决时间在ios上显示NAN的问题

最近在用vue,遇到倒计时在ios上显示为NAN的问题. 因为做的是倒计时支付,思路是获取服务器时间和下单时间,再转成秒级时间戳做差值. 在网上找到说是ios 不支持例如2018-09-01 10:00:59这种"-"连接符. 网上的解决是: var data = '2018-09-01 12:00:00' var time= Date.parse(new Date(data )) 然后用正则匹配改一下,将-替换为/ var date = '2018-09-01 12:00:00' v