网站首页 > 开源技术 正文
多选式按钮和单选式按钮有些类似,只不过是可以多选。在项目里我们也是经常遇到的。
准备工作:
- 创建一个页面: MultiChoice.vue
- 在router.js里配置MultiChoice页面的路由
{ path: '/multichoice', name: 'multichoice', component: () => import('./views/MultiChoice.vue') }
- 在index.vue里添加一项
<a href="javascript:void(0)" @click="$router.push('/multichoice')"> <van-col span="6" class="marb20"> <van-icon name="pending-deliver" /> <div>MultiChoice</div> </van-col> </a>
至今为止呢,我们的首页显示的样式子是这样滴?不知道不觉间我们已经学完了20个组件了!哇噢,为自己欢呼一下吧!如果想看更多的内容,欢迎关注我,每天都有更新哈。
代码演示多选式按钮:
我们延用单先式按钮的布局:
<van-row> <van-col span="6" style="margin: 10px auto;" v-for="(item,index) in movieType"> <van-button :type="flag[index] ? 'primary' : 'normal'" @click="onClick(index)" > {{ item }} </van-button> </van-col> </van-row>
多选的话,肯定是一个数组,所以选重的checkedId会是一个数组,会将选中的index值push进去。还有一个flag值,代表着每个item的true或者false,也是一个数组。在这里,我们引入一个lodash库(不熟悉的小伙伴可以打开研究研究哈),方便我们去遍历以及删除等操作。
import _ from 'lodash' export default { data() { return { checkedId: [], flag: [], movieType: ['悲剧', '爱情', '动作', '枪战', '犯罪', '科幻'] } }, methods: { onClick(index) { if(this.checkedId.indexOf(index) === -1) { //checkedId是否有index this.checkedId.push(index) this.$set(this.flag, index, true) //改变数组的值的方法 } else { this.checkedId = _.remove(this.checkedId, (idx) => { return idx !== index //返回删除后的数组 }) this.$set(this.flag, index, false) } },
这里需要特别说明的一点是,flag是一个数组,我们在改变其值时不能使用赋值的方式,需要用$set方法,否则效果会出不来。我再重温一下这个知识点,当我们在JS部分改变数组的值或者数组的长度时,都需要用$set方法。这是一个坑,经常会有小伙伴犯错哈。语法格式为:
this.$set(array, index, value)
今天就到这里啦。休息休息一会儿吧?明天继续加油噢!加油
猜你喜欢
- 2024-09-08 vue2组件系列第四十二节:NavBar 导航栏
- 2024-09-08 从零开始学Python——使用Selenium抓取动态网页数据
- 2024-09-08 黑客突破macOS的安全防御,新型恶意软件正在偷偷的窃取你的文件
- 2024-09-08 vue2组件系列第三十六节:Lazyload 图片懒加载
- 2024-09-08 Visa|实习面试|2022 暑假(visa issues)
- 2024-09-08 消息中间件RabbitMQ入门详解(消息中间件mq作用)
- 2024-09-08 vue2组件系列第二十二节:SwitchCell 开关单元格
- 2024-09-08 vue2组件系列第二十节:按钮式单选组件
- 2024-09-08 vue2组件系列第四十节:NoticeBar 通告栏
- 2024-09-08 vue2组件系列第二十六节:PasswordInput 密码输入框
你 发表评论:
欢迎- 07-10公司网站建站选择:人工建站和源码建站分析
- 07-10多用途游戏娱乐新闻网站HTML5模板
- 07-10站长教你搭建属于自己的网站(搭建网站的步骤)
- 07-10php宝塔搭建部署实战响应式塑料封条制品企业网站模板源码
- 07-10自适应响应式汽车配件类网站源码 html5高端大气汽车网站织梦模板
- 07-10网站标签怎么设置?(网站标签怎么设置比较好)
- 07-10PageAdmin企业网站制作中踩过的坑
- 07-10豆包给我输出的html在线象棋源码(有点简单)
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)