效果图 上移 下移 首先想到的是 数组的相互替换嘛

<template>
<div>
<div class="box" v-for="(item,index) in arr" :key="index">
{{item.cnName}}
<div class="upDownWrapper">
<span class="up" @click="upClick(index)" v-if="index !== 0">上移</span>
<span class="down" @click="downClick(index)" v-if="index !== arr.length - 1">下移</span>
</div>
</div>
</div>
</template> export default {
data() {
return {
arr: [
{
cnName: "第一"
},
{
cnName: "第二"
},
{
cnName: "第三"
},
{
cnName: "第四"
}
]
};
}
};

主要方法是

  methods: {
// 上移
upClick(index) {
console.log('upClick',index);
let newArr = this.swapItems(this.arr, index, index - 1)
this.arr = newArr
},
// 下移
downClick(index) {
console.log('downClick',index);
let newArr = this.swapItems(this.arr, index, index + 1)
this.arr = newArr
},
// 上下移动的核心。splice函数 返回的是被删除 项 并且 会改变原数组
  // arr.splice(index2, 1, arr[index])[0] 这个得到是的 被删除的 项 并且原数组 已经得到替换。所以需要将被删除项 设置为上一项的值
  //如果解释不是很清楚。自己去控制台 打印 玩玩 (主要是为自己理解做笔记)
swapItems(arr, index1, index2) {
arr[index1] = arr.splice(index2, 1, arr[index1])[0];
return arr;
} }

最新文章

  1. 浅谈时钟的生成(js手写代码)
  2. python2-gst0.10制作静态包的补丁
  3. Java反射机制专题
  4. 无锁数据结构(Lock-Free Data Structures)
  5. CSS布局自适应高度解决方法
  6. sql server Geometry 类型操作 笔记
  7. SQL Server Object Explorer in VS
  8. C#利用lambda在函数中创建内部函数
  9. LayoutInflater的inflate函数用法
  10. 【SSH 基础】浅谈Hibernate关系映射(4)
  11. linux下一个C语言flock功能使用 .
  12. windows平台搭建lighttpd+php+sqlite
  13. UVa 143 - Orchard Trees
  14. Java学习笔记 11/15:一个简单的JAVA例子
  15. sublime Text3插件无法安装解决方法(提示There are no packages available installation)
  16. ASP.NET MVC Autofac依赖注入的一点小心得(包含特性注入)
  17. Java 多线程之线程池的使用
  18. fwrite文件写入数据
  19. 【Android】让Python在Android系统上飞一会儿
  20. 书籍记录——C++大学基础教程(第五版)

热门文章

  1. Java学习:网络编程总结
  2. 《跟唐老师学习云网络》 -第4篇 router路咋走啊【华为云技术分享】
  3. 【03】Jenkins:SonarQube
  4. Quartz.Net 删除一个Job
  5. .Net Core 3.0 WebAPI && MySQL 8.0搭建详情
  6. Delphi - TIdFTP 两个重要函数
  7. Python【day 9】函数入门2
  8. BUAA-OO-2019 第四单元总结
  9. 在React中写一个Animation组件,为组件进入和离开加上动画/过度
  10. vue 利用路由跨页传参