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

分析企业营销型网站建设的可能性图片上加语音 网站开发

分析企业营销型网站建设的可能性,图片上加语音 网站开发,义乌网站建设联系方式,关于我们做网站v-if 与 v-for简介 v-ifv-forv-if v-for使用 v-if 与 v-for优先级比较 vue2 中#xff0c;v-for的优先级高于v-if 例子进行分析 vue3 v-if 具有比 v-for 更高的优先级 例子进行分析 总结 在vue2中#xff0c;v-for的优先级高于v-if在vue3中#xff0c;v-if的优先级高…v-if 与 v-for简介 v-ifv-forv-if v-for使用 v-if 与 v-for优先级比较 vue2 中v-for的优先级高于v-if 例子进行分析 vue3 v-if 具有比 v-for 更高的优先级 例子进行分析 总结 在vue2中v-for的优先级高于v-if在vue3中v-if的优先级高于v-for 咋一听到这个题如果自己没有试验过感觉还真容易说错就像是会进入一个“思维误区” 就会理所当然的想如果这两个指令同时出现一个标签那是不是应该先if判断是否存在才会去渲染for的循环结构但实际是这样吗 v-if 与 v-for简介 v-if v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染。 v-if是Vue.js中的一个指令用于条件渲染根据绑定的表达式的值的真假情况来决定是否显示或隐藏元素。 当v-if的表达式值为true时元素会被渲染出来当v-if的表达式值为false时元素不会被渲染出来。 例如下面代码中如果isShow为true则div元素将会被渲染否则不会被渲染 templatediv v-ifisShowshow content/div /template需要注意的是v-if指令会根据表达式的值动态地添加或删除元素因此如果有频繁的切换操作会影响性能。 此时可以考虑使用v-show指令它只是简单地控制元素的显示或隐藏并没有频繁的添加或删除元素。 v-for v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法其中 items 是源数据数组或者对象而 item 则是被迭代的数组元素的别名。 v-for使用 的时候建议设置key值并且保证每个key值是独一无二的这便于diff算法进行优化。 v-for是Vue.js中的一个指令用于循环渲染数组或对象的数据。 v-for的用法有两种情况 遍历数组 可以通过v-for指令循环渲染一个数组将数组中的每个元素渲染成对应的元素或组件。语法形式为v-foritem in array。 例如下面代码中使用v-for指令循环渲染一个数组list中的每个元素 templatedivulli v-foritem in list :keyitem.id{{ item.name }}/li/ul/div /templatescript export default {data() {return {list: [{ id: 1, name: Apple },{ id: 2, name: Banana },{ id: 3, name: Orange }]};} } /script遍历对象 可以通过v-for指令循环渲染一个对象的属性将对象的属性和值渲染成对应的元素或组件。语法形式为v-forvalue, key in object。 例如下面代码中使用v-for指令循环渲染一个对象info的每个属性 templatedivulli v-for(value, key) in info :keykey{{ key }}: {{ value }}/li/ul/div /templatescript export default {data() {return {info: {name: John,age: 25,gender: Male}};} } /script需要注意的是在使用v-for时需要为每个循环的元素或组件添加唯一的key属性以便Vue.js能够跟踪每个节点的身份并且在更新时进行高效的DOM操作。 更多详细内容请微信搜索“前端爱好者“ 戳我 查看 。 v-if v-for使用 ul li v-foruser in users :keyuser.id{{user.name}}/li /ul footer v-ifuser{{user}}/footerv-if 与 v-for优先级比较 在vue2中v-for的优先级高于v-if在vue3中v-if的优先级高于v-forVue 3.0 已经调整了v-if和v-for 的优先级故不存在渲染性能问题。 vue2 中v-for的优先级高于v-if 当 v-if 与 v-for 一起使用时v-for 具有比 v-if 更高的优先级。 官方文档https://v2.cn.vuejs.org/v2/guide/conditional.html#v-if-%E4%B8%8E-v-for-%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8 在 Vue 2 中不推荐在同一个元素上同时使用 v-if 和 v-for主要是由于可能引发的性能问题和逻辑混淆。当 v-if 和 v-for 结合使用时会导致以下问题 性能问题 当 v-if 和 v-for 同时存在于同一个元素上时Vue 会在每次循环迭代时都重新渲染和销毁元素。这可能会导致不必要的 DOM 更新和性能下降特别是在较长的列表上。这是因为每次循环迭代都会重新计算条件并进行 DOM 操作。 逻辑混淆 同时使用 v-if 和 v-for 会增加代码的复杂性和理解难度。将条件和循环逻辑分离可以使代码更加清晰并让开发人员更容易理解和维护。 例子进行分析 templatediv classtest-containerdiv v-for(item,index) in list v-ifitem 9 :keyitem /div/div /template scriptexport default {data(){return {numberArr:[1,2,3,4,5,6,7,8,9,10]}}}; /script style scoped /style但是本段代码实际的逻辑为 this.numberArr.map(function (item,index) {if (item9) {return item} })相反最佳实践是: 将条件渲染 (v-if) 和列表渲染 (v-for) 分开处理。 可以使用计算属性或方法来处理数据然后在模板中分别使用 v-if 和 v-for。以下是一个示例代码 templatedivdiv v-ifshowDiv v-foritem in filteredItems :keyitem.id{{ item.name }}/div/div /templatescript export default {data() {return {showDiv: true,items: [{ id: 1, name: Item 1, isActive: true },{ id: 2, name: Item 2, isActive: false },{ id: 3, name: Item 3, isActive: true }]}},computed: {filteredItems() {return this.items.filter(item item.isActive);}} } /script 在上述示例中我们使用了计算属性 filteredItems 来过滤具有 isActive 属性的项目。 然后我们在模板中使用 v-for 来渲染过滤后的结果并使用 v-if 来条件性地渲染每个元素。这样可以保持逻辑的清晰和性能的优化。 vue3 v-if 具有比 v-for 更高的优先级 当 v-if 与 v-for 一起使用时v-if 具有比 v-for 更高的优先级。 官方文档https://cn.vuejs.org/guide/essentials/list.html#v-for-with-v-if !--这会抛出一个错误因为属性 todo 此时没有在该实例上定义 -- li v-fortodo in todos v-if!todo.isComplete{{ todo.name }} /li推荐: 在外新包装一层 再在其上使用 v-for 可以解决这个问题 (这也更加明显易读) template v-fortodo in todosli v-if!todo.isComplete{{ todo.name }}/li /template例子进行分析 templatediv classtest-containerdiv v-for(item,index) in numberArr v-ifitem 9 :keyitem/div/div /template script export default {data(){return {numberArr: [1,2,3,4,5,6,7,8,9,10] //需要遍历的数据}} }; /script style scoped /style 由于 v-if 优先级高,导致页面并没有进行渲染,控制台报错。 以下为控制台报错信息 [Vue warn]: Property index was accessed during render but is not defined on instance.但是下面这种用法控制台并不会报错但是会警告 templatediv classtest-containerulli v-for(item, index) in objList :keyindex v-ifitem.isShow{{ item.name }}/li/ul/div /template scriptexport default {data(){return {objList:[{ name: obj2, isShow: false },{ name: obj2, isShow: true },]}}}; /script style scoped /style 但是这种写法也会有一个问题无论是否符合v-if的条件都进行了报错 官方推荐的写法是这样的, 把 v-for 移动到容器元素上,例如ul,ol 或者外面包裹一层 template templatediv classtest-containerultemplate v-for(item, index) in objList :keyindexli v-ifitem.isShow{{ item.name }}/li/template/ul/div /template scriptexport default {data(){return {objList:[{ name: obj2, isShow: false },{ name: obj2, isShow: true },]}}}; /script style scoped /style但如果想要有条件地跳过循环的执行那么可以将v-if置于外层元素或者template上。 例如这样: templatediv classtest-containerul v-ifobjList.lengthli v-for(item, index) in objList :keyindex{{ item.name }}/li/ul/div /template script export default {data(){return {objList:[{ name: obj2, isShow: false },{ name: obj2, isShow: true },]}} }; /script style scoped /style总结 在vue2中v-for的优先级高于v-if Vue 会在每次循环迭代时都重新渲染和销毁元素。 v-for比v-if优先级更高可以说清结论的来源更好。 如果同时出现在同一个标签上则每次渲染都会先执行循环再进行条件判断会造成较大的性能浪费。 解决办法有两种: 先在外层套一个template来放置v-if再嵌套v-for。借助computed计算属性代替v-if。 在vue3中v-if的优先级高于v-for 注Vue 3.0 已经调整了v-if和v-for 的优先级故不存在渲染性能问题。 参考文档 https://www.nowcoder.com/discuss/513503986318696448https://baijiahao.baidu.com/s?id1766197354040903874wfrspiderforpc
http://www.zqtcl.cn/news/849500/

相关文章:

  • 新乡网站建设价格中国反钓鱼网站联盟
  • 在线工具网站网站建设公司ejiew
  • 个人搭建网站教程王牌网站做代理
  • 网站地图什么意思电子商务营销推广
  • 手机排行榜网站教育平台网站开发
  • 佛山市顺德区建设局网站萧山网站建设
  • 合肥百度团购网站建设怀化网站开发
  • 网站建设ppt模板彩票网站开发dadi163
  • 网站建设4435建筑设计一般用什么软件
  • 河南网站建设重庆森林台词
  • 网站一直没收录雄安做网站
  • 全国网站直播平台被摧毁响应是网站怎么做
  • 衡阳建设网站做网站和app多少费用
  • 怎么做付费网站蚌埠网站建设专业公司哪家好
  • 学网站建设需要多长时间成都网站建设定制开发服务
  • 建站宝盒后台深圳建网站公司怎么选择
  • 什么是大型门户网站网站建设的经验之谈
  • 网站建站网站设计网站制作书生
  • 租号网站是怎么做的wordpress 快讯功能
  • 口碑好的盐城网站建设wordpress课堂主题
  • 网站品牌打造wordpress插件有木马
  • 网站开发与软件研发有什么区别查网站域名备案查询系统
  • 硬盘做免费嗳暧视频网站黄冈免费网站推广平台汇总
  • node做网站怎么知道蜘蛛来过怎么学网站设计
  • 青海省建设厅网站公示公告简单建站
  • 手机网站用什么后台wordpress 百度蜘蛛
  • 网站文章伪原创怎么做手机网站 程序
  • 网站建设每月工作多少开发小程序的目的
  • 社区网站建设方案pptwordpress用户名在哪看
  • 浙江企业响应式网站建设公司简介如何写