Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vuejs2 从数组加载的表存在VueJS性能问题_Vuejs2 - Fatal编程技术网

Vuejs2 从数组加载的表存在VueJS性能问题

Vuejs2 从数组加载的表存在VueJS性能问题,vuejs2,Vuejs2,我的VueJS存在性能问题。我有一个包含X行的表,我通过数组加载它。问题是,当我更改数组的单个元素时,它会再次呈现所有数组,因此会再次执行所有条件(v-if、if-in-v-bind:class等)。我在表中留下一个JSFIDLE,只隐藏一个元素,然后再次更新整个表 $(函数(){ var用户=[]; 对于(var i=1;i由于所有内容都在同一范围内呈现,因此当显示/隐藏所需的单行时,Vue将被迫重新呈现所有行。相反,请使用组件隔离更改的范围 Vue.component("row",{

我的VueJS存在性能问题。我有一个包含X行的表,我通过数组加载它。问题是,当我更改数组的单个元素时,它会再次呈现所有数组,因此会再次执行所有条件(v-if、if-in-v-bind:class等)。我在表中留下一个JSFIDLE,只隐藏一个元素,然后再次更新整个表

$(函数(){
var用户=[];

对于(var i=1;i由于所有内容都在同一范围内呈现,因此当显示/隐藏所需的单行时,Vue将被迫重新呈现所有行。相反,请使用组件隔离更改的范围

Vue.component("row",{
  props:["user"],
  template:`
    <tr>
      <td>{{ user.id }}</td>
      <td>{{random()}}</td>
      <td>{{ user.name }}</td>
      <td>{{ user.email }}</td>
    </tr>`,
  methods:{
    random: function() {
      return faker.random.number();
    },

  }
})
Vue.component(“行”{
道具:[“用户”],
模板:`
{{user.id}
{{random()}}
{{user.name}
{{user.email}
`,
方法:{
随机:函数(){
返回faker.random.number();
},
}
})
您的主模板最终看起来如下所示:

<tbody>
    <tr is="row" v-for="u in users" :key="u.id" v-if="u.visible" :user="u"></tr>
</tbody>


这是更新后的问题。

您能显示您的代码吗?对不起,我刚刚用代码更新了问题。
<tbody>
    <tr is="row" v-for="u in users" :key="u.id" v-if="u.visible" :user="u"></tr>
</tbody>