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

南阳网站设计聊石家庄seo

南阳网站设计,聊石家庄seo,怎么用wordpress做搜索网站,淳安县千岛湖建设集团网站跟着视频学做项目的时候&#xff0c;碰到一个多级联动列表&#xff0c;列表元素的display会从none切换成block&#xff0c;切换过程中可能导致资源渲染过多&#xff0c;从而导致卡顿问题。<div class"all-sort-list2"><div class"item" v-for&quo…

跟着视频学做项目的时候,碰到一个多级联动列表,列表元素的display会从none切换成block,切换过程中可能导致资源渲染过多,从而导致卡顿问题。

<div class="all-sort-list2"><div class="item" v-for="(list_data1, index) in list" :key="list_data1.categoryId"@mouseenter="setChooseIndex(index)"><h3 :class="{ chooseNow: nowIndex == index }"><a>{{ list_data1.categoryName }}</a></h3><div class="item-list clearfix" :style="{ display: nowIndex == index ? 'block' : 'none' }"><div class="subitem"><dl class="fore" v-for="list_data2 in list_data1.categoryChild" :key="list_data2.categoryId"><dt><a>{{ list_data2.categoryName }}</a></dt><dd><em v-for="list_data3 in list_data2.categoryChild" :key="list_data3.categoryId"><a>{{ list_data3.categoryName }}</a></em></dd></dl></div></div></div>
</div>

对于这个列表,其内部元素是从服务区获取数据,然后通过v-for显示。

类item-list的disblock会不断从none切换为block。

组件渲染导致使用卡顿

<div class="all-sort-list2"><div class="item" v-for="(list_data1, index) in list" :key="list_data1.categoryId"@mouseenter="setChooseIndex(index)"><h3 :class="{ chooseNow: nowIndex == index }"><router-link>{{ list_data1.categoryName }}</router-link></h3><div class="item-list clearfix" :style="{ display: nowIndex == index ? 'block' : 'none' }"><div class="subitem"><dl class="fore" v-for="list_data2 in list_data1.categoryChild" :key="list_data2.categoryId"><dt><router-link>{{ list_data2.categoryName }}</router-link></dt><dd><em v-for="list_data3 in list_data2.categoryChild" :key="list_data3.categoryId"><router-link>{{ list_data3.categoryName }}</router-link></em></dd></dl></div></div></div>
</div>

当v-for循环中使用router-link标签时,随着display从none切换为block,多个router-link标签会被重新渲染。由于router-link标签是VUE组件,当数据过多时,可能一次display切换,会导致上千个VUE组件被重新渲染,因此会造成性能问题。

一个解决办法是可以把router-link换成a标签,再在a标签上绑定click事件处理。

回调函数被多次渲染

<div class="all-sort-list2"><div class="item" v-for="(list_data1, index) in list" :key="list_data1.categoryId"@mouseenter="setChooseIndex(index)"><h3 :class="{ chooseNow: nowIndex == index }"><a @click="">{{ list_data1.categoryName }}</a></h3><div class="item-list clearfix" :style="{ display: nowIndex == index ? 'block' : 'none' }"><div class="subitem"><dl class="fore" v-for="list_data2 in list_data1.categoryChild" :key="list_data2.categoryId"><dt><a @click="">{{ list_data2.categoryName }}</a></dt><dd><em v-for="list_data3 in list_data2.categoryChild" :key="list_data3.categoryId"><a @click="">{{ list_data3.categoryName }}</a></em></dd></dl></div></div></div>
</div>

但是这种方法仍然存在问题,由于每个a标签中都绑定了click事件,该事件会被渲染上千次,可以通过事件委托到父级,把事件的渲染降低为一次。

(但这里其实我也不太懂,我觉得虽然事件生成了多个,但是其实不click就不会被调用,不调用也会影响性能吗)

解决办法是使用事件委托。

把事件绑定在父级上,然后通过event.target获得点击的标签,进行处理。

<div class="all-sort-list2" @click="goSearch"><div class="item" v-for="(list_data1, index) in list" :key="list_data1.categoryId" ... </div>
</div><script>...goSearch(event){let e = event.target;getAttribute('...');}
</script>

http://www.dtcms.com/wzjs/164894.html

相关文章:

  • 58网站开发要多少钱新媒体培训
  • 云南网站建设专业品牌怎样进入12345的公众号
  • 内网门户网站建设seo技术分享免费咨询
  • 四川建设信息网官网淘宝seo排名优化的方法
  • 厦门专业网站制作网络seo是什么意思
  • wordpress路径增加discuz惠州seo推广外包
  • 有什么网站可以做援交收录优美图片官网
  • 根据网站开发app易搜搜索引擎
  • 5v贵阳做网站的价格1500元个性定制首选方舟网络网络热词2021流行语
  • 网站的在线客服系统学管理培训班去哪里学
  • 做网站代理拉别人赌博中国企业网络营销现状
  • 公司做网站价格新闻最新消息今天
  • 宝安做网站的公司深圳市前十的互联网推广公司
  • 宁波网站建设培训哪家好榜单优化
  • 游戏网站建设流程图百度搜索资源
  • 河南网站建设的详细策划谷歌浏览器手机版下载
  • 简单个人网站开发代码济南做网站比较好的公司
  • 微信的官方网站怎么做seo优化工作有哪些
  • 弹性盒子做自适应网站百度销售推广
  • 做网站网页的公司推广网站排名
  • h5网站建设功能计划表网络舆情监测平台
  • flash网站需要改变2023新闻大事件摘抄
  • wordpress主题谁的最好茂名seo快速排名外包
  • 网站被挂马 301百度收录网站需要多久
  • 太原做网站多少钱全国十大跨境电商公司排名
  • 做党建网站市场调研报告word模板
  • 河北网站制作公司报价杭州今天查出多少阳性
  • 制作网站步骤代运营公司可靠吗
  • 有哪个网站可以做兼职高清免费观看电视网站
  • 珠海住建网站网络优化工程师工作内容