效果

通过脚手架创建项目(@vue/cli 4.5.11)

vue create 项目名
配置需要注意
选择Ts(空格选中)
选择vue3.x
然后一路回车

到这了就完成vue3+ts配置

需要用到ant-vue需要安装,注意安装2.x版本,安装官网直接安装是1.x版本

安装
npm install ant-design-vue@next --save

如果安装错误版本就卸载重装

卸载
npm uninstall ant-design-vue

配置ant
在main.ts引入

import { createApp } from 'vue'
import App from './App.vue'
import Antd from 'ant-design-vue';  //+
import 'ant-design-vue/dist/antd.css'; //+
//插入 .use(Antd)
createApp(App).use(Antd).mount('#app')

穿梭框的实现思路:
首先在temlate写左右两列,两个按钮
通过改变左右两列的数据,vue自动响应式地改变对应内容,然后通过按钮触发即可。
通过shuttle 函数实现过滤选中和未选择,分别赋予左右列,并合并原来的内容。
注意,由于改变了原来的数据,所以要先处理好先后顺序,否则会由于原数据被改而后续操作出现问题。

完整App.vue源码如下

<template><div class="content"><a-card style="width: 300px" title="左侧"><ul><li v-for="item in leftData" :key="item.title"><input type="checkbox" v-model="item.isCheck" /><label>{{ item.title }}</label></li></ul></a-card><div class="btn-group"><button @click="shuttle(0)">→</button><button @click="shuttle(1)">←</button></div><a-card style="width: 300px" title="右侧"><ul><li v-for="item in rightData" :key="item.title"><input type="checkbox" v-model="item.isCheck" /><label>{{ item.title }}</label></li></ul></a-card></div>
</template><script lang="ts">
import { defineComponent, reactive, toRefs } from "vue";
export default defineComponent({name: "App",components: {},setup() {const state = reactive({leftData: [{title: "furfur-jiang-left",isCheck: true,},{title: "fur-left",isCheck: true,},{title: "furfur-left",isCheck: false,},{title: "furfurJiang-left",isCheck: false,},],rightData: [{title: "furfur-jiang-right",isCheck: true,},],});const shuttle = (flag: number) => {if (flag === 0) {state.rightData = [...state.rightData,...state.leftData.filter((item) => item.isCheck),];state.leftData = state.leftData.filter((item) => !item.isCheck);}else{state.leftData = [...state.leftData,...state.rightData.filter((item) => item.isCheck),];state.rightData = state.rightData.filter((item) => !item.isCheck);}};return {...toRefs(state),shuttle,};},
});
</script><style scoped>
.content {display: flex;justify-content: center;align-items: center;margin-top: 15px;
}
.btn-group {display: flex;flex-direction: column;margin: 15px;
}
ul {list-style: none;margin: 0;padding: 0;
}
</style>

github地址

vue3+ts+ant-vue:手把手教你实现穿梭框简易版,配源码相关推荐

  1. 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码

    前言 公司项目中使用的libvlcjni.so库文件,有点老,对Android 6.0+系统兼容性太差了,当程序运行在Android6.0+系统上时,回弹出警告框,提示libvlcjni.so:tex ...

  2. 【朝花夕拾】Android自定义View之(一)手把手教你看懂View绘制流程——向源码要答案

    前言 原文:Android自定义View之(一)手把手教你看懂View绘制流程--向源码要答案 View作为整个app的颜值担当,在Android体系中占有重要的地位.深入理解Android View ...

  3. 手把手教你开发enc424j600+Lwip以太网-送全部源码

    每个单片机爱好者以及嵌入式软件开发人员,都希望能够将设计的产品连入网络,在众多的网络通讯方式中,以太网是最经典,跨度最广的一种方式,它具备带宽大[100Mbps~1000Mbps],延时小[局域网达到 ...

  4. vite+vue3+ts+ant design vue+tailwindcss搭建前端web应用(2)

    回顾 上篇文章地址:vite+vue3+ts+ant design vue+tailwindcss搭建前端web应用(1)_konsei的博客-CSDN博客 上篇文章搭建了vue3项目,引入了ant ...

  5. Vue 手把手教你使用 kindeditor

    Vue 手把手教你使用 kindeditor 第一步: npm install kindeditor 第二步:创建富文本组件 建立以.vue结尾的单文件 <template><!-- ...

  6. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  7. 一个基于vue和element-ui的树形穿梭框组件

    el-tree-transfer 简介 因为公司业务使用vue框架,ui库使用的element-ui.在市面上找到一个好用的vue树形穿梭框组件都很难,又不想仅仅因为一个穿梭框在element-ui之 ...

  8. java计算机毕业设计vue基层社区管理服务网MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计vue基层社区管理服务网MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计vue基层社区管理服务网MyBatis+系统+LW文档+源码+调试部署 本源码技术栈 ...

  9. vue鼠标悬停出现悬浮框(简易版实现)

    vue鼠标悬停出现悬浮框(简易版实现) 使用一个变量来控制悬浮框显示和隐藏,注意:这是简易版实现,其他功能需自行开发: 代码如下: <template><div><div ...

最新文章

  1. Javascript 检查一组 radio 中的哪一个被勾选
  2. 比特飞使用的是什么主题
  3. 解放原画师!Wav2Lip 用 AI 听音同步人物口型
  4. python字典功能默写_python之字典操作
  5. window10查看内存情况
  6. 微信小程序开发的坑---vuex
  7. [实践项目]Udacity self-driving-car-sim
  8. 简述hdfs工作原理_HDFS 原理简述
  9. backgroundworker与Thread区别
  10. linux window manager,Window manager (简体中文)
  11. Fusion 360 最新动态 - 温度场和热应力分析
  12. 集装箱号码OCR识别SDK在港口理货系统中的应用
  13. echarts饼图制作
  14. spring 组建及核心内容的简介(一)
  15. Polkadot波卡链众筹成本价与总量、创始人团队简介
  16. 3dsmax 2022 图文安装教程
  17. 中英互译在线翻译官方版
  18. 华为云fusionsphere 6.1组件功能
  19. etch下面,用wine可以安装超星阅览器
  20. htc hd2刷android,一代神机HTC HD2成功刷入Android 6.

热门文章

  1. 存储连接应用服务器简单入门
  2. mysql中工资表,( 13 ) 数据库中有工资表 , 包括 “ 姓名 ” 、 “ 工资 ” 和 “ 职称 ” 等字段 , 现要对不同职称的职 - 赏学吧...
  3. 代理IP是如何使用的
  4. 软考是什么?-最全软考详解
  5. 使用eagle导出PCB制造商可用的gerber文件
  6. 在excel中等间距抽取数据
  7. 小白学爬虫---爬取中国房价工资比
  8. 文献翻译1:Oriented R-CNN for Object Detection
  9. root高级权限怎么弄,root高级权限怎么打开
  10. 兼容iOS10资料整理