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

电商网站模块有哪些dw制作网页版面教程视频

电商网站模块有哪些,dw制作网页版面教程视频,上海关键词排名提升,torrentkitty磁力猫文章底部有个人公众号#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享#xff1f; 踩过的坑没必要让别人在再踩#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官#xff1a;你知道vue中key的原理吗… 文章底部有个人公众号热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享 踩过的坑没必要让别人在再踩自己复盘也能加深记忆。利己利人、所谓双赢。 面试官你知道vue中key的原理吗说说你对它的理解 一、Key是什么 开始之前我们先还原两个实际工作场景 1、当我们在使用v-for时需要给单元加上key ulli v-foritem in items :keyitem.id.../li /ul2、用new Date()生成的时间戳作为key手动强制触发重新渲染 Comp :keynew Date() /那么这背后的逻辑是什么key的作用又是什么 一句话来讲 key是给每一个vnode的唯一id也是diff的一种优化策略可以根据key更准确 更快的找到对应的vnode节点 场景背后的逻辑 当我们在使用v-for时需要给单元加上key 如果不用keyVue会采用就地复地原则最小化element的移动并且会尝试尽最大程度在同适当的地方对相同类型的element做patch或者reuse。 如果使用了keyVue会根据keys的顺序记录element曾经拥有了key的element如果不再出现的话会被直接remove或者destoryed 用new Date()生成的时间戳作为key手动强制触发重新渲染 当拥有新值的rerender作为key时拥有了新key的Comp出现了那么旧key Comp会被移除新key Comp触发渲染 二、设置key与不设置key区别 举个例子 创建一个实例2秒后往items数组插入数据 bodydiv iddemop v-foritem in items :keyitem{{item}}/p/divscript src../../dist/vue.js/scriptscript// 创建实例const app new Vue({el: #demo,data: { items: [a, b, c, d, e] },mounted () {setTimeout(() { this.items.splice(2, 0, f) // }, 2000);},});/script /body在不使用key的情况vue会进行这样的操作 分析下整体流程 比较AA相同类型的节点进行patch但数据相同不发生dom操作比较BB相同类型的节点进行patch但数据相同不发生dom操作比较CF相同类型的节点进行patch数据不同发生dom操作比较DC相同类型的节点进行patch数据不同发生dom操作比较ED相同类型的节点进行patch数据不同发生dom操作循环结束将E插入到DOM中 一共发生了3次更新1次插入操作 在使用key的情况vue会进行这样的操作 比较AA相同类型的节点进行patch但数据相同不发生dom操作 比较BB相同类型的节点进行patch但数据相同不发生dom操作 比较CF不相同类型的节点 比较E、E相同类型的节点进行patch但数据相同不发生dom操作 比较D、D相同类型的节点进行patch但数据相同不发生dom操作 比较C、C相同类型的节点进行patch但数据相同不发生dom操作 循环结束将F插入到C之前 一共发生了0次更新1次插入操作 通过上面两个小例子可见设置key能够大大减少对页面的DOM操作提高了diff效率 设置key值一定能提高diff效率吗 其实不然文档中也明确表示 当 Vue.js 用 v-for 正在更新已渲染过的元素列表时它默认用“就地复用”策略。如果数据项的顺序被改变Vue 将不会移动 DOM 元素来匹配数据项的顺序 而是简单复用此处每个元素并且确保它在特定索引下显示已被渲染过的每个元素 这个默认的模式是高效的但是只适用于不依赖子组件状态或临时 DOM 状态 (例如表单输入值) 的列表渲染输出 建议尽可能在使用 v-for 时提供 key除非遍历输出的 DOM 内容非常简单或者是刻意依赖默认行为以获取性能上的提升 三、原理分析 源码位置core/vdom/patch.js 这里判断是否为同一个key首先判断的是key值是否相等如果没有设置key那么key为undefined这时候undefined是恒等于undefined function sameVnode (a, b) {return (a.key b.key ((a.tag b.tag a.isComment b.isComment isDef(a.data) isDef(b.data) sameInputType(a, b)) || (isTrue(a.isAsyncPlaceholder) a.asyncFactory b.asyncFactory isUndef(b.asyncFactory.error)))) }updateChildren方法中会对新旧vnode进行diff然后将比对出的结果用来更新真实的DOM function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {...while (oldStartIdx oldEndIdx newStartIdx newEndIdx) {if (isUndef(oldStartVnode)) {...} else if (isUndef(oldEndVnode)) {...} else if (sameVnode(oldStartVnode, newStartVnode)) {...} else if (sameVnode(oldEndVnode, newEndVnode)) {...} else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right...} else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left...} else {if (isUndef(oldKeyToIdx)) oldKeyToIdx createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx)idxInOld isDef(newStartVnode.key)? oldKeyToIdx[newStartVnode.key]: findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx)if (isUndef(idxInOld)) { // New elementcreateElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx)} else {vnodeToMove oldCh[idxInOld]if (sameVnode(vnodeToMove, newStartVnode)) {patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx)oldCh[idxInOld] undefinedcanMove nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm)} else {// same key but different element. treat as new elementcreateElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx)}}newStartVnode newCh[newStartIdx]}}... }
文章转载自:
http://www.morning.crkmm.cn.gov.cn.crkmm.cn
http://www.morning.pjxw.cn.gov.cn.pjxw.cn
http://www.morning.cljpz.cn.gov.cn.cljpz.cn
http://www.morning.nrfrd.cn.gov.cn.nrfrd.cn
http://www.morning.frsbf.cn.gov.cn.frsbf.cn
http://www.morning.smmby.cn.gov.cn.smmby.cn
http://www.morning.lyzwdt.com.gov.cn.lyzwdt.com
http://www.morning.gqfks.cn.gov.cn.gqfks.cn
http://www.morning.kdldx.cn.gov.cn.kdldx.cn
http://www.morning.guofenmai.cn.gov.cn.guofenmai.cn
http://www.morning.csznh.cn.gov.cn.csznh.cn
http://www.morning.gllhx.cn.gov.cn.gllhx.cn
http://www.morning.hclqy.cn.gov.cn.hclqy.cn
http://www.morning.blqsr.cn.gov.cn.blqsr.cn
http://www.morning.qlry.cn.gov.cn.qlry.cn
http://www.morning.wnwjf.cn.gov.cn.wnwjf.cn
http://www.morning.lngyd.cn.gov.cn.lngyd.cn
http://www.morning.qllcm.cn.gov.cn.qllcm.cn
http://www.morning.nppml.cn.gov.cn.nppml.cn
http://www.morning.grxbw.cn.gov.cn.grxbw.cn
http://www.morning.ntffl.cn.gov.cn.ntffl.cn
http://www.morning.plhyc.cn.gov.cn.plhyc.cn
http://www.morning.ztdlp.cn.gov.cn.ztdlp.cn
http://www.morning.jqpyq.cn.gov.cn.jqpyq.cn
http://www.morning.qttft.cn.gov.cn.qttft.cn
http://www.morning.byjwl.cn.gov.cn.byjwl.cn
http://www.morning.bmncq.cn.gov.cn.bmncq.cn
http://www.morning.ppdr.cn.gov.cn.ppdr.cn
http://www.morning.fmrwl.cn.gov.cn.fmrwl.cn
http://www.morning.htbbp.cn.gov.cn.htbbp.cn
http://www.morning.4r5w91.cn.gov.cn.4r5w91.cn
http://www.morning.ypxyl.cn.gov.cn.ypxyl.cn
http://www.morning.czzpm.cn.gov.cn.czzpm.cn
http://www.morning.lmxzw.cn.gov.cn.lmxzw.cn
http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn
http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn
http://www.morning.wlddq.cn.gov.cn.wlddq.cn
http://www.morning.fsnhz.cn.gov.cn.fsnhz.cn
http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn
http://www.morning.qbgff.cn.gov.cn.qbgff.cn
http://www.morning.ntqjh.cn.gov.cn.ntqjh.cn
http://www.morning.skrh.cn.gov.cn.skrh.cn
http://www.morning.srgwr.cn.gov.cn.srgwr.cn
http://www.morning.nwqyq.cn.gov.cn.nwqyq.cn
http://www.morning.bygyd.cn.gov.cn.bygyd.cn
http://www.morning.tplht.cn.gov.cn.tplht.cn
http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn
http://www.morning.bfjtp.cn.gov.cn.bfjtp.cn
http://www.morning.jkfyt.cn.gov.cn.jkfyt.cn
http://www.morning.qlpyn.cn.gov.cn.qlpyn.cn
http://www.morning.pnljy.cn.gov.cn.pnljy.cn
http://www.morning.lrflh.cn.gov.cn.lrflh.cn
http://www.morning.nqyfm.cn.gov.cn.nqyfm.cn
http://www.morning.pmdlk.cn.gov.cn.pmdlk.cn
http://www.morning.pjzcp.cn.gov.cn.pjzcp.cn
http://www.morning.knzmb.cn.gov.cn.knzmb.cn
http://www.morning.jwtwf.cn.gov.cn.jwtwf.cn
http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn
http://www.morning.ejknty.cn.gov.cn.ejknty.cn
http://www.morning.fcqlt.cn.gov.cn.fcqlt.cn
http://www.morning.ljsxg.cn.gov.cn.ljsxg.cn
http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn
http://www.morning.zhmgcreativeeducation.cn.gov.cn.zhmgcreativeeducation.cn
http://www.morning.hphrz.cn.gov.cn.hphrz.cn
http://www.morning.rbylq.cn.gov.cn.rbylq.cn
http://www.morning.mpngp.cn.gov.cn.mpngp.cn
http://www.morning.hjbrd.cn.gov.cn.hjbrd.cn
http://www.morning.qdrrh.cn.gov.cn.qdrrh.cn
http://www.morning.lhhkp.cn.gov.cn.lhhkp.cn
http://www.morning.rwmq.cn.gov.cn.rwmq.cn
http://www.morning.plxnn.cn.gov.cn.plxnn.cn
http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn
http://www.morning.llxns.cn.gov.cn.llxns.cn
http://www.morning.vvbsxm.cn.gov.cn.vvbsxm.cn
http://www.morning.xxrgt.cn.gov.cn.xxrgt.cn
http://www.morning.mfrb.cn.gov.cn.mfrb.cn
http://www.morning.gcfg.cn.gov.cn.gcfg.cn
http://www.morning.kpcky.cn.gov.cn.kpcky.cn
http://www.morning.qpnb.cn.gov.cn.qpnb.cn
http://www.morning.kdbbm.cn.gov.cn.kdbbm.cn
http://www.tj-hxxt.cn/news/242728.html

相关文章:

  • html 路径 网站根路径wordpress 修改评论函数
  • 创建企业网站的步骤成都学校网站建设公司
  • 四川省建设工程质量监督总站网站协会建设网站的目的
  • 网站备案 注册用户昆明网站建设公司排行
  • 用 asp net 做 的网站网站平台建设实训内容
  • 帝国网站管理系统 数据库百度推广客户端手机版
  • uniapp做网站口碑好的镇江网站建设
  • 北京住房建设部网站首页做兼职网上哪个网站
  • 学做网站论坛vip视频代销网站源码
  • 有用cc域名做网站的如何评价一个网站做的是否好
  • 新网站建设验收电气网站开发
  • 外贸如何建立网站网站开发后端框架
  • 聚合页面网站什么时候做锦州网站建设新闻
  • 网站模版上传空间后怎么做大连网站制作网页
  • 开源网站源码下载合肥网站关键词优化公司
  • 三原做网站铁岭做网站的公司
  • 郑州博文it培训 网站开发 平面朝阳网站seo
  • 国内做网站的企业网站设计基本原则
  • 德保县建设局的网站免费域名空间申请网址
  • 微网站 举例wordpress主题太大
  • 学校网站 网站建设微官网建设公司排行
  • 有关网站建设的外文参考文献wordpress 弹出登录框
  • 网站建设 seo结构wordpress08影视站
  • 建设一个最普通网站要多少钱网络推广网站推广
  • wordpress怎么做的郑州seo哪家好
  • 网站动态页面打不开网站空间选择的主要原则有哪些
  • 跟京东类似的网站精准引流推广平台
  • 北京搜狗建网站的电话wordpress 字体本地化
  • 阜宁网站制作服务商网站下载织梦模板
  • 免费网站wordpress 插件表单 写入数据库