美文网首页
vue前移,后移

vue前移,后移

作者: Light_shallow | 来源:发表于2019-09-29 10:20 被阅读0次
前移后移效果图.png

首先第一个不可以前移,最后一个不可以后移

  <button size="small" @click="moveUp(index)" :disabled="index==0">前</button>
  <button size="small" @click="moveDown(index)" :disabled="index==list.length-1" >后</button>
           list: [{
                    id: 1,
                    data: 111
                },{
                    id: 2,
                    data: 222
                },{
                    id: 3,
                    data: 333
                },{
                    id: 4,
                    data: 444
                },{
                    id: 5,
                    data: 555
                }]
  • 方法一
moveUp(index){
   if(index > 0){
      let temp = this.list[index-1];
      this.list.splice(index-1,1);
      this.list.splice(index,0,temp);
   }
},
moveDown(index){
  if(index != this.list.length-1){
      let temp = this.list[index+1];
      this.list.splice(index+1,1);
      this.list.splice(index,0,temp);
  }
}
  • 方法二
moveUp(index){ 
  var tempOption = this.list[index - 1];
  this.$set(this.list, index - 1, this.list[index]);
  this.$set(this.list, index, tempOption)
},
moveDown(index){
  var tempOption = this.list[index+1];
  this.$set(this.list, index + 1, this.list[index]);
  this.$set(this.list, index, tempOption);  
}

点击按钮,相对应的视图也会改变
后续需要获取list的值则是移动位置后的值

知识点

  • Vue.set()
  • this.$set
    当发现model上的数据发生改变,而页面上的视图数据没有改变时可以考虑使用Set
    splice方法也可以触发
    例如:
    1、给数组中的某一个值直接赋值 this.list[index] = newValue
    2、修改数组的长度 this.list.length = newLength
    这两种方法会改变list的值但是不会触发视图的更新
    可以有两种方法解决
  • this.set this.set(this.list,index,value)
  • splice
    this.list.splice(index,number,value)

文档API

官方关于set的API.png

this.$set除了可以修改数据,也可以添加数据,这个可以根据使用场景相对应的实现

如果是添加属性

                animal:{
                    type: 'dog',
                    age: 12
                }
  mounted() {
            this.animal.aa = 123;//这行代码会改变animal里面的数据但是不会更改视图
            this.$set(this.animal,'ages',23)//既改变数据也会更改视图,并且在这个地方会把上方的this.animal.aa= 123也一起更新到视图里
   },

相关文章

  • vue前移,后移

    首先第一个不可以前移,最后一个不可以后移 方法一 方法二 点击按钮,相对应的视图也会改变后续需要获取list的值则...

  • 数组元素前移、后移

    本文首发于公众号:水很大将一个长度为N的数组依次前移K位。取数组长度为9,前移5位并通过表格来解释。第一次找到一个...

  • 3月25日作业--夏天

    骨盆1+1个面的状态 前倾+前移 前倾+后移 前倾+侧倾 前倾+侧移 前倾+旋转 后倾+前移 ...

  • iterm

    单词前移/后移https://coderwall.com/p/h6yfda/use-and-to-jump-for...

  • 第11期评估模块第一天作业

    静态姿势评估 矢状面: 下肢:膝屈曲; 骨盆:前移; 腹部:小腹微突; 胸廓:胸廓后移; 头颈部:头前移。 冠状面...

  • 有关抑制肌肉和整合的内容|运动损伤防护03、04

    一、旋前(续) 衔接前旋未完内容,本节课围绕如何激活被抑制的肌肉。 拉伸大腿内收肌:趴小青蛙,前移后移动。首先俯身...

  • 钟妍老师姿势动觉ASAP康复私教体系三周课程总结

    什么是姿势动觉?什么是ASAP?TMD,SMCD,JMD?什么是重心前移后移,骨盆前倾后倾,左旋右旋?对于纯小白...

  • Xcode快捷键

    光标上移一行和下移一行 光标前移一格和后移一格 代码上移一行和下移一行 为Xcode添加删除行、复制行快捷键

  • 链表

    数组不是组织数据的最佳结构 在做删除和插入操作的时候我们需要将其它的元素前移/后移,这样执行效率会过低 javas...

  • 第四篇:python基础(续2)

    (1)冒泡排序 定义:比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终...

网友评论

      本文标题:vue前移,后移

      本文链接:https://www.haomeiwen.com/subject/lkkbuctx.html