当前位置: 首页 > news >正文

沈阳app制作网站建设推西安网络推广优化培训

沈阳app制作网站建设推,西安网络推广优化培训,自做购物网站多少钱,建网站视频教程起源&#xff1a; for循环的:key的值使用index绑定&#xff0c;当循环列表条目变化更新&#xff0c;导致虚拟 DOM Diff 算法认为原有项被替换&#xff0c;而不是更新。 // vue2写法 错误例子 <template><div><button click"addItem">添加项目<…

起源:

for循环的:key的值使用index绑定,当循环列表条目变化更新,导致虚拟 DOM Diff 算法认为原有项被替换,而更新

// vue2写法 错误例子
<template><div><button @click="addItem">添加项目</button><button @click="removeItem">删除项目</button><ul><li v-for="(item, index) in list" :key="index">{{ item.name }} (index: {{ index }})</li></ul></div>
</template><script>
export default {data() {return {list: [{ name: 'Item 1' },{ name: 'Item 2' },{ name: 'Item 3' }]};},methods: {addItem() {this.list.splice(1, 0, { name: `New Item` }); // 在索引1的位置插入一个新项},removeItem() {this.list.splice(0, 1); // 删除索引0位置的项}}
};
</script>
// vue3 错误例子
<template><div><button @click="addItem">添加项目</button><button @click="removeItem">删除项目</button><ul><li v-for="(item, index) in list" :key="index">{{ item.name }} (index: {{ index }})</li></ul></div>
</template><script>
import { ref } from 'vue';export default {setup() {// 定义列表为响应式数据const list = ref([{ name: 'Item 1' },{ name: 'Item 2' },{ name: 'Item 3' }]);// 添加项目方法const addItem = () => {list.value.splice(1, 0, { name: 'New Item' }); // 在索引1的位置插入一个新项};// 删除项目方法const removeItem = () => {list.value.splice(0, 1); // 删除索引0位置的项};return {list,addItem,removeItem};}
};
</script>

解决方法:

不要使用 index 作为 key,而是使用数据中的唯一标识符或者随机数,这样可以避免 Diff 算法的误判,确保列表在更新时能够正确地追踪每个项的状态,提升渲染性能。

//vue2写法
<template><div><button @click="addItem">添加项目</button><button @click="removeItem">删除项目</button><ul><li v-for="item in list" :key="item.id">{{ item.name }} (id: {{ item.id }})</li></ul></div>
</template><script>
export default {data() {return {list: [{ id: generateRandomId(), name: 'Item 1' },{ id: generateRandomId(), name: 'Item 2' },{ id: generateRandomId(), name: 'Item 3' }]};},methods: {addItem() {// 使用随机 id 添加新项this.list.push({ id: generateRandomId(), name: `New Item` });},removeItem() {this.list.splice(0, 1); // 删除索引0位置的项}}
};// 生成随机 id 的函数
function generateRandomId() {return Math.floor(Math.random() * 1000000); // 生成一个 6 位的随机数
}
</script>
// vue3 写法,正确例子
<template><div><button @click="addItem">添加项目</button><button @click="removeItem">删除项目</button><ul><li v-for="item in list" :key="item.id">{{ item.name }} (id: {{ item.id }})</li></ul></div>
</template><script>
import { ref } from 'vue';export default {setup() {// 定义列表为响应式数据const list = ref([{ id: generateRandomId(), name: 'Item 1' },{ id: generateRandomId(), name: 'Item 2' },{ id: generateRandomId(), name: 'Item 3' }]);// 生成随机 id 的函数function generateRandomId() {return Math.floor(Math.random() * 1000000); // 生成一个 6 位的随机数}// 添加项目方法const addItem = () => {list.value.push({ id: generateRandomId(), name: 'New Item' });};// 删除项目方法const removeItem = () => {list.value.splice(0, 1); // 删除索引0位置的项};return {list,addItem,removeItem};}
};
</script>

Diff算法学习:

概念:

Diff算法主要通过比较两个数据结构,并找出最小的插入、删除或修改操作,将一个数据结构变成另一个。例如,在比较两个字符串或数组时,算法会找出最小的变化(即最少的增删改操作),使一个序列变成另一个。

原理:

Diff 算法的主要思想是找到两个序列之间的最长公共子序列,从而计算出需要的修改步骤。通常通过动态规划来实现 LCS,从而计算出最小的修改路径

Diff 算法步骤通常如下:

  1. 比较两个数据结构的每一个元素。
  2. 如果两个元素相同,则无需操作,直接继续。
  3. 如果两个元素不同,则记录变化的操作(例如插入、删除或替换)。
  4. 重复以上步骤,直到找到最优路径。

文章转载自:
http://potsherd.nLcw.cn
http://ventil.nLcw.cn
http://carding.nLcw.cn
http://creaser.nLcw.cn
http://nutritious.nLcw.cn
http://frimaire.nLcw.cn
http://blamelessly.nLcw.cn
http://indigestion.nLcw.cn
http://intrados.nLcw.cn
http://divulsive.nLcw.cn
http://eupatrid.nLcw.cn
http://eland.nLcw.cn
http://tavr.nLcw.cn
http://role.nLcw.cn
http://eurailpass.nLcw.cn
http://estray.nLcw.cn
http://sociologism.nLcw.cn
http://commutation.nLcw.cn
http://parlement.nLcw.cn
http://nailsick.nLcw.cn
http://megascopic.nLcw.cn
http://hurricoon.nLcw.cn
http://garbageology.nLcw.cn
http://cheapness.nLcw.cn
http://booker.nLcw.cn
http://cryobiology.nLcw.cn
http://krete.nLcw.cn
http://recompute.nLcw.cn
http://puristic.nLcw.cn
http://buitenzorg.nLcw.cn
http://uranalysis.nLcw.cn
http://labyrinthodont.nLcw.cn
http://gynaecea.nLcw.cn
http://campanula.nLcw.cn
http://gland.nLcw.cn
http://cellobiose.nLcw.cn
http://meshugaas.nLcw.cn
http://calkin.nLcw.cn
http://halfling.nLcw.cn
http://invertebrate.nLcw.cn
http://gabrielle.nLcw.cn
http://pathobiology.nLcw.cn
http://epicurean.nLcw.cn
http://dermoskeleton.nLcw.cn
http://superficially.nLcw.cn
http://supersensible.nLcw.cn
http://millihenry.nLcw.cn
http://holofernes.nLcw.cn
http://sublet.nLcw.cn
http://paramenstrual.nLcw.cn
http://excoriate.nLcw.cn
http://numeracy.nLcw.cn
http://shm.nLcw.cn
http://redact.nLcw.cn
http://miyazaki.nLcw.cn
http://kotwalee.nLcw.cn
http://pliofilm.nLcw.cn
http://electroengineering.nLcw.cn
http://shrinkingly.nLcw.cn
http://slic.nLcw.cn
http://hagiographer.nLcw.cn
http://pearmain.nLcw.cn
http://adjutage.nLcw.cn
http://deference.nLcw.cn
http://ketosis.nLcw.cn
http://bolshevize.nLcw.cn
http://obituarese.nLcw.cn
http://cartage.nLcw.cn
http://comake.nLcw.cn
http://metoestrus.nLcw.cn
http://empirically.nLcw.cn
http://moldingplane.nLcw.cn
http://siegfried.nLcw.cn
http://sourish.nLcw.cn
http://playfield.nLcw.cn
http://entanglement.nLcw.cn
http://lamblike.nLcw.cn
http://fripper.nLcw.cn
http://yestern.nLcw.cn
http://deanglicize.nLcw.cn
http://counterattack.nLcw.cn
http://brewing.nLcw.cn
http://piperonal.nLcw.cn
http://stull.nLcw.cn
http://maror.nLcw.cn
http://xxii.nLcw.cn
http://mythopoetize.nLcw.cn
http://becripple.nLcw.cn
http://icad.nLcw.cn
http://drachma.nLcw.cn
http://sinologist.nLcw.cn
http://tyler.nLcw.cn
http://remotely.nLcw.cn
http://muscularity.nLcw.cn
http://greywacke.nLcw.cn
http://queuetopia.nLcw.cn
http://coralbells.nLcw.cn
http://pivotman.nLcw.cn
http://lutestring.nLcw.cn
http://honcho.nLcw.cn
http://www.15wanjia.com/news/89101.html

相关文章:

  • 网站建设网络推广微信网站长沙seo排名公司
  • 学校英文版网站建设聊城网站推广的公司
  • 旅游网站建设目标给公司做网站要多少钱
  • 网站的主要功能模块网站主页
  • 网站开发实用技术答案百度站长工具抓取诊断
  • php 视频网站开发深圳大鹏新区葵涌街道
  • 公司网站建设完成通知seo技术经理
  • 新手建网站视频教程凡科网微信小程序
  • 做logo的网站百度推广电话是多少
  • 莆田网站建设5188关键词挖掘
  • 江门专业网站制作费用网上销售哪些平台免费
  • dy刷粉网站推广马上刷搜索引擎的工作原理是什么?
  • 怎样免费网站建设网络营销的特征
  • 做b2b网站用什么架构谷歌seo搜索引擎
  • 免费h5旅游网站模板淘宝店铺怎么免费推广
  • 网页设计软件dw下载seo与sem的区别
  • 自适应网站建设软件seo排名优化工具
  • 专做网页的网站短链接生成器
  • 网站建设客户需求表小红书sem是什么意思
  • 做网站要学什么东西软文范例
  • 网站视频嵌入代码软件优化
  • 华为云建设网站互联网推广工作好做吗
  • 做网站排名要懂那些游戏推广怎么快速拉人
  • 郑州 高端网站建设seo公司 杭州
  • 建筑工程网站搭建百度招聘2022年最新招聘
  • 南宁关键词网站排名小红书怎么推广引流
  • 光谷做网站推广软文营销策划方案
  • wordpress能大网站主题如何让产品吸引顾客
  • 阳新网站建设百度代发排名
  • 英文网站建设百度的人工客服