vue 实现模块上移下移 实现排序
2024-08-24 09:54:40
效果图 上移 下移 首先想到的是 数组的相互替换嘛
<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;
} }
最新文章
- 浅谈时钟的生成(js手写代码)
- python2-gst0.10制作静态包的补丁
- Java反射机制专题
- 无锁数据结构(Lock-Free Data Structures)
- CSS布局自适应高度解决方法
- sql server Geometry 类型操作 笔记
- SQL Server Object Explorer in VS
- C#利用lambda在函数中创建内部函数
- LayoutInflater的inflate函数用法
- 【SSH 基础】浅谈Hibernate关系映射(4)
- linux下一个C语言flock功能使用 .
- windows平台搭建lighttpd+php+sqlite
- UVa 143 - Orchard Trees
- Java学习笔记 11/15:一个简单的JAVA例子
- sublime Text3插件无法安装解决方法(提示There are no packages available installation)
- ASP.NET MVC Autofac依赖注入的一点小心得(包含特性注入)
- Java 多线程之线程池的使用
- fwrite文件写入数据
- 【Android】让Python在Android系统上飞一会儿
- 书籍记录——C++大学基础教程(第五版)