Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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
Vue.js Laggy Vuetify v-checkbox_Vue.js_Vuejs2_Vuetify.js - Fatal编程技术网

Vue.js Laggy Vuetify v-checkbox

Vue.js Laggy Vuetify v-checkbox,vue.js,vuejs2,vuetify.js,Vue.js,Vuejs2,Vuetify.js,我将Vuetify v-checkbox呈现在一个包含大约500个项目的列表中,并经历了显著的延迟。在这个时代,500人的名单应该是可以管理的。我可以选择哪些方法来提高性能 <div id="app"> <v-app> <div v-for="(x, index) in values"><v-checkbox v-model="selected"/ :value="inde

我将Vuetify v-checkbox呈现在一个包含大约500个项目的列表中,并经历了显著的延迟。在这个时代,500人的名单应该是可以管理的。我可以选择哪些方法来提高性能

<div id="app">
  <v-app>
    <div v-for="(x, index) in values"><v-checkbox v-model="selected"/ :value="index"></div>
  </v-app>
</div>

new Vue({
  vuetify: new Vuetify(),
  data: () => ({
    values: [],
    selected: []
  }),
  created(){
    this.values.length = 500;
  }
}).$mount("#app");

新Vue({
vuetify:新的vuetify(),
数据:()=>({
值:[],
选定:[]
}),
创建(){
此.values.length=500;
}
}).$mount(“#app”);

查看以体验令人敬畏的延迟。

我对Vue一点也不在行,因此这可能是一种不好的做法,但如果您自己管理数据,它的性能似乎要好得多:

newvue({
vuetify:新的vuetify(),
数据:()=>({
值:新数组(500)。填充(0),
选定:[]
}),
方法:{
切换:功能(索引){
如果(此选定项包括(索引)){
this.selected.splice(this.selected.indexOf(index),1);
}否则{
此.selected.push(索引)
}
}
}
}).$mount(“#app”);

我对Vue一点也不在行,因此这可能是一种不好的做法,但如果您自己管理数据,它的性能似乎要好得多:

newvue({
vuetify:新的vuetify(),
数据:()=>({
值:新数组(500)。填充(0),
选定:[]
}),
方法:{
切换:功能(索引){
如果(此选定项包括(索引)){
this.selected.splice(this.selected.indexOf(index),1);
}否则{
此.selected.push(索引)
}
}
}
}).$mount(“#app”);

这无疑提高了性能,但是,当在我的真实应用程序中实现时,这一改进不足以使复选框可用。这无疑提高了性能,但是,当在我的真实应用程序中实现时,这一改进不足以使复选框可用。
new Vue({
  vuetify: new Vuetify(),
  data: () => ({
    values: new Array(500).fill(0),
    selected: []
  }),
  methods: {
    toggle: function(index) {
      if (this.selected.includes(index)) {
        this.selected.splice(this.selected.indexOf(index), 1);
      } else {
        this.selected.push(index)
      }

    }
  }
}).$mount("#app");

<div id="app">
  <v-app>
    <div v-html="Array.from(selected)"></div>
    <div v-for="(x, index) in values"><v-checkbox @change="toggle(index)" :value="index"></div>
  </v-app>
</div>