Vue中避免滥用this去读取data中数据

  • template模板中如何避免

提前处理v-for循环所用的数据,不要在v-for循环中去读取数组、对象类型的数据。在上述template模板中滥用this的例子中可以这样优化。

假设listarrobj皆是服务端返回来的数据,且arrobj没有用到任何模块渲染中,可以这样优化

优化前:

复制代码
<template>
  <div class="wrap">
    <div v-for=item in list>
      <div> {{ arr[item.index]['name'] }} </div>
      <div> {{ obj[item.id]['age'] }} </div>
    </div>
  </div>
</template>

优化后:

复制代码
<template>
  <div class="wrap">
    <div v-for=item in listData>
      <div{{item.name}} </div>
        <div>{{item.age}}</div>
    </div>
  </div>
</template>
<script>
const arr = [];
const obj = {}
export default {
  data() {
    return {
      list: [],
    }
  },
  computed: {
    listData: function ({list}) {
      list.forEach(item => {
        item.name = arr[item.index].name;
        item.age = obj[item.id].age;
      })
      return list;
    }
  },
}
</script>
相关推荐
devlei1 天前
从源码泄露看AI Agent未来:深度对比Claude Code原生实现与OpenClaw开源方案
android·前端·后端
程序员 沐阳1 天前
JavaScript 内存与引用:深究深浅拷贝、垃圾回收与 WeakMap/WeakSet
开发语言·javascript·ecmascript
Jagger_1 天前
周末和AI肝了两天,终于知道:为什么要把AI当做实习生
前端
weixin_456164831 天前
vue3 子组件向父组件传参
前端·vue.js
沉鱼.441 天前
第十二届题目
java·前端·算法
Setsuna_F_Seiei1 天前
CocosCreator 游戏开发 - 多维度状态机架构设计与实现
前端·cocos creator·游戏开发
Bigger1 天前
CodeWalkers:让 AI 助手化身桌面宠物,陪你敲代码的赛博伙伴!
前端·app·ai编程
cyclv1 天前
无网络地图展示轨迹,地图瓦片下载,绘制管线
前端·javascript
土豆12501 天前
Tauri 入门与实践:用 Rust 构建你的下一个桌面应用
前端·rust
惜茶1 天前
vue+SpringBoot(前后端交互)
java·vue.js·spring boot