javascript - 动态访问 Vue 组件数据变量名

标签 javascript vue.js vuejs2 vue-component

编辑:我在这个例子中使用了一个数字,这是一个坏主意,在实际程序中我不是使用数字而是名称(例如 name_abba、name_jef、name_john)
我的 Vue 组件中有 4 个变量:

name_1
name_2
name_3
number
打印值是这样完成的:
{{ name_1 }}
如何根据变量 number 的值更改变量后面的数字?
或者有没有更好的方法来做这样的事情?
{{ name_{{number}} }}

最佳答案

使用 $data选项:

new Vue({
  el: "#app",
  data() {
    return {
      name_abba: 'aaa',
      name_jef: 'bbb',
      name_john: 'ccc',
      current: 'john'
    }
  }
});
<div id="app">
  {{ $data[`name_${current}`] }}
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.14/vue.min.js"></script>

最好将变量放在对象中而不是根中,这样您就不必使用 $data :

new Vue({
  el: "#app",
  data() {
    return {
      current: 'john',
      name: {
        abba: 'aaa',
        jef: 'bbb',
        john: 'ccc',
      }
    }
  }
});
<div id="app">
  {{ name[current] }}
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.14/vue.min.js"></script>

关于javascript - 动态访问 Vue 组件数据变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66517523/

相关文章:

javascript - ECharts:禁用图例上的默认点击操作

vue.js - Visual Studio代码: Initial VueJS setup cannot find module "@/.."

unit-testing - 使用 jest 测试 nuxt.js 应用程序时访问 `process.env` 属性

javascript - JavaScript 中的层次聚类

javascript - 使用 JavaScript 清除浏览器中的 UNDO 事件历史记录?

Vue.js 2.3 - 元素 UI 对话框 - 同步和 Prop

javascript - 在父级上打开 Vue 对话框(模态)

javascript - Vue.js 销毁在组件内运行的 setInterval

javascript - 为什么我们应该使用 import React from 'react'

javascript - 为什么 JQuery 插件无法在 Vue 区域运行?