vuefor重新赋值数组有缓存

vuefor重新赋值数组有缓存,第1张

近期开发了一个新功能,就是上传,并支持删除,于是乎写了一个组件。上传是没有问题的,但是删除的时候老是出问题,问题是删除的时候,例如总共上传了4张,我删除了第二张,就剩下了三张,但是现在的第二张和第三张是一样的,这是什么情况?经过分析之后,知道了是因为缓存的原因。使用v-for的时候设置key值得时候,我用的是index,导致存在缓存的情况,这个和vue中的diff算法有关。于是,我就给每一项设置一个独一无二的索引值,就是给每一项加一个时间戳new Date()getTime()作为索引值,这样的话就没有缓存的情况了,完美地解决了这个问题,补充:独一无二的索引值用symbol类型的值会更好一点。后面会总结一下vue中的diff算法。vue缓存v-forindex生肖羊,43岁之后命有多好?重点强调1979年的,结果看哭了!麦玲玲仅供娱乐广告Vue3 keep-alive实现通过key值来控制是否缓存页面472阅读·0评论·0点赞2022年9月21日keep-alive v-for为何使用key值 slot插槽和vue及prop验证756阅读·0评论·0点赞2021年4月19日android和h5传输问题,混合开发-H5 调用Android 的相册和照相机上传的问题350阅读·0评论·0点赞2021年6月2日v-for中加入key的作用635阅读·2评论·5点赞2019年10月16日vue的基础原理使用(v-for、v-if同时使用等)894阅读·0评论·0点赞2021年12月30日当 el-upload 遇上 v-for 时应该注意的问题2058阅读·6评论·1点赞2020年12月15日生肖兔:1975年的“兔”过了47岁后财富,婚姻,事业走向变数(免费)姓名测算_仅供娱乐广告v-for解决数据渲染刷新问题1064阅读·0评论·0点赞2021年5月31日vue中v-for的最佳使用技巧875阅读·0评论·1点赞2021年8月18日Vue —— 解决缓存问题2611阅读·1评论·2点赞2021年12月9日解决使用keep-alive缓存的组件添加key后,热重载失效问题1636阅读·0评论·3点赞2021年6月8日v-for中为什么要加key,原理是什么448阅读·0评论·1点赞2020年11月19日浅谈ThreadLocal1576阅读·0评论·5点赞2021年11月5日vuejs+云存储(实现上传功能)5955阅读·23评论·16点赞2021年5月14日Vue中关于v-for循环时添加key属性问题与理解1214阅读·0评论·3点赞2021年12月2日带你详细了解Vue中的v-for8663阅读·0评论·4点赞2022年4月11日vue中v-for的用法97W阅读·4评论·22点赞2019年3月5日vue里页面的缓存详解

楼层效果如上图所示:当点击左边的索引表会跳到对应的模块,同时在滚动模块的时候索引表也跟着变。

这个主要是要利用iScroll的iscroll方法,实时获取滚动的y轴数据,同时获取每个索引对应模块的offsetTop的值,保存到一个数组中,这里我是把这个方法放到watch里面的,监视数据是否有变化,同时这里因为我们要获取dom元素,所以要用$nextTick方法等待dom渲染好再获取每个索引对应模块的高度。

点击索引表,实现滚动到相应的模块就非常简单了。根据当前点击索引的索引,找到thisindexTopOffset里面的scrollTop值,然后利用iscroll里面的scrollTo方法滚动就可以了。

最近在开发交互比较友好的后台系统采用了vue-admin-element,同时也发现了一些自己没用过的语法和技术,特在此做下总结:

1本次第一次使用到了fusejs此包为用来模糊搜索的轻量级包,可对搜索结果的各个属性进行权重设置,结构支持较为深入可以严格搜索也可以模糊搜索;

2路由的懒加载的书写方式为:const login = r =>

requireensure([], () => r(require('@/views/login/index')), 'login')

3/deep/的css处理方法,用于scoped下只局限对全局的组件进行样式的更改

4scss暴漏至外部充当变量的方法$text: #000;命名之后 使用:export{menuText:$text} 对外进行变量 的暴漏入下图:

5ObjectgetOwnProperty用于返回对象的自有属性,包括可枚举和不可枚举的

Objectkeys()返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名

Objectvalues()方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值。

Objectentries方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值对数组

Arrayentries方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。

迭代对象中数组的索引值作为 key, 数组元素作为 value。需要用for of来遍历新的对象

6vuex中actions里的方法中第一个参数中我们可以获取,commit,state,dispatch

7$nextTick,vue中的DOM更新是异步的,此函数提供在DOM更新后获取到更新的数据进行DOM *** 作

8在router-link上绑定click事件是不会触发的,只有绑定到native上才会触发

9@clickleft/right/middle 代表鼠标的左,右,中键触发

10@contextmenu触发右键d出菜单

11this$routerreplace({path: '/redirect'+ fullPath})重新导向路由刷新

12rectObject = objectgetBoundingClientRect();

rectObjecttop:元素上边到视窗上边的距离;

rectObjectright:元素右边到视窗左边的距离;

rectObjectbottom:元素下边到视窗上边的距离;

rectObjectleft:元素左边到视窗左边的距离;

13样式中从根目录引入其他样式写法结构为“@import ''~@/文件夹”

14this$routerreplace({path: '/redirect'+ fullPath})重新导向路由刷新

15this$el它指的是当前组件的的元素,在mounted之后才有

16让flex在一行指定几个items,节点设置成横向flex布局,每个子节点设置百分比宽度

17store中不同模块之间的调用方法,属性需要涉及调用root级,如:dispatch('app/updateLocation',{key_root:data},{root:true});

18在登录页,因自动登录跳转时,需在router中拦截并next({to, replace: true}),阻止用户误 *** 作跳转回到登录页或者无限锁死的情况

19在vue-cli中,我们在webpackbaseconfigjs中给scss配置loader后,当在此加载会报错Invalid CSS after "load the styles": expected 1 selector or at-rule, was "var content = requi"这是因为项目加载了2此sass-loader,第一次是在build/utilsjs中,将这里得loader注释掉即可:

20在实现多层组件监听,在中间层组件里给下游组件传递v-bind="$attrs" v-on="$listeners" 给中间层组件自己加上属性inheritAttrs: false

21在使用el-table的时候,当我们需要在table绑定的data里动态添加属性,并让此属性与input双向绑定,如下图

但这样单纯的添加并不能实现数据的双向绑定,需要调用vue的$set激活此属性的响应机制:

再有种情况,外部再想el-table里的data里push新的数据的时候 ,没错我们需要再次对新的data进行$set来激活动态添加的属性的响应机制:

当el-table里的双向绑定的动态属性变动时,无需对tableData进行再次$set自动响应

22此次开发需要用到一些动画,现在一些动画进行初步的一些总结:transition对dom的属性进行监督,当属性发生数值变化(自适应不会触发)的时候会触发transiton动画;animate为自定义动画的,可以分步,可以多个队列,分两种形式为C3形式写在css中的和Vue中包装过的transition标签,触发机制是在DOM元素出现和消失的时候

23关于el-table在flex盒子布局下不自适应的问题: >

在Vue中,当您多次调用`this$set()`或者`Vueset()`来修改同一个数据属性时,Vue只会执行一次更新。这是因为Vue使用了"响应式系统"来跟踪数据属性的变化,当您调用`this$set()`或者`Vueset()`时,Vue会标记这个属性已经被修改,但实际的更新 *** 作并不会立即执行,而是在下一个"更新周期"中进行。

在更新周期中,Vue会扫描所有的数据属性,找到被标记为已修改的属性,并执行相应的更新 *** 作。因此,无论您调用`this$set()`或者`Vueset()`多少次,实际的更新 *** 作只会执行一次。

需要注意的是,在Vue中,如果您使用`thisdataX = value`来直接修改数据属性,Vue是无法检测到这个修改的。因此,如果您需要使用`this$set()`或者`Vueset()`来修改数据属性,建议始终使用这两个方法来进行 *** 作,以确保Vue能够正确地跟踪数据属性的变化。

以上就是关于vuefor重新赋值数组有缓存全部的内容,包括:vuefor重新赋值数组有缓存、vue中楼层滚动实现原理解析、关于仿vue-admin-element的一些技术总结等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9527826.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存