Vant UI中van-collapse下拉折叠面板默认展开第一项的方法

目录
  • 问题重现
  • 需求实现
  • 附:vant之van-collapse无法默认展开某一项的解决方法
  • 总结

问题重现

最近在做项目时,有一个需求是让 van-collapse 下拉折叠面板的第一项默认是展开状态;我使用到了 Vant UI 组件,首先按照官网文档的写法直接引入:

<!--下拉折叠面板-->
  <van-collapse class="collapse" v-model="activeNames" is-link="false">
    <van-collapse-item title="" :name="index">
      <!--展开后显示的内容-->
      <span class="coll_show">制定拜访计划</span>
      <span class="coll_show">保险保障分析</span>
      <span class="coll_show">制作计划书</span>
      <span class="coll_show">会客厅讲解</span>
      <span class="coll_show">
        <van-cell @click="showEdit">修改备注</van-cell>
        <van-popup v-model="showRemark">
          <p>修改备注</p>
          <form action="/">
            <input class="text" placeholder="最多输入50个字" type="text">
            <input class="btn1" type="button" value="取消">
            <input class="btn2" type="submit" value="提交">
          </form>
        </van-popup>
      </span>
    </van-collapse-item>
  </van-collapse>
export default {
  data() {
    return {
      activeNames: ['1'],
    };
  },
};

默认每一项都是不展开的:

需求实现

先看官方文档 Collapse Props

参数 说明 类型 默认值
v-model 当前展开面板的 name 手风琴模式:number | string
非手风琴模式:(number | string)[ ]
-
accordion 是否开启手风琴模式 boolean false
border 是否显示外边框 boolean true

通过官方文档我们可以知道,van-collapse 的 v-model 属性所绑定的是当前展开面板 van-collapse-item 的 name 值,我的下拉面板父级为遍历产生,所以 name 值采用了动态的下标的依次为数字 0、1、2、3.....

而是否开启手风琴模式则决定了 v-model 属性值的类型。

非手风琴模式下:v-model 为数组类型,那么此时我们想让第一项也就是 name 值为 0 的折叠项默认展开,在 data 中传入 activeNames 时就应该将其设置数组格式且 默认值为 0,但注意是 [0] 而不是 ["0"]:

export default {
  data() {
    return {
      activeNames: [0],
    };
  },
};

此时第一项默认展开:

手风琴模式下:v-model 属性值类型为数字或字符串,那么我们将 data 中的 activeNames 改为数字或字符串即可;

export default {
  data() {
    return {
      activeNames: 0,
    };
  },
};

效果可以实现;

附:vant之van-collapse无法默认展开某一项的解决方法

name 唯一标识符,默认为索引值 number | string index

v-model 当前展开面板的 name 手风琴模式:number | string

非手风琴模式:(number | string)[]

但我在使用时 activeNames: [‘0’] 死活不管用,后来改[0]好了

<div class="small-area-details" v-for="(listItem, listIndex) in goldAlbumList" :key="listIndex">
   <van-collapse v-model="activeNames" :border="false">
     <van-collapse-item
       title="标题"
       :name="listIndex">
     </van-collapse-item>
   </van-collapse>
</div>

<script>
export default {
data() {
    return {
        activeNames: [0] //不能是['0']
        }
    }
}
</script>

总结

到此这篇关于Vant UI中van-collapse下拉折叠面板默认展开第一项的文章就介绍到这了,更多相关Vant UI van-collapse下拉默认第一项内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Vant UI中van-collapse下拉折叠面板默认展开第一项的方法

    目录 问题重现 需求实现 附:vant之van-collapse无法默认展开某一项的解决方法 总结 问题重现 最近在做项目时,有一个需求是让 van-collapse 下拉折叠面板的第一项默认是展开状态:我使用到了 Vant UI 组件,首先按照官网文档的写法直接引入: <!--下拉折叠面板--> <van-collapse class="collapse" v-model="activeNames" is-link="false&quo

  • 关于vant折叠面板默认展开问题

    目录 vant折叠面板默认展开 最近做项目有个需求 vant点击图标展开收缩 vant折叠面板默认展开 最近做项目有个需求 让所有的vant组件库中的折叠面板van-collapse-item全部打开,collapse折叠面板是嵌入在van-tab中的. 之前通过查资料,发现只要这两个值一样就能将面板默认置为打开. 注意:van-collapse中绑定的activeName不是一个数组就会报错 这里因为上面绑定都是动态的,所以我们不能给activeName写死某个值,那么循环把所有title放到

  • struts2中simple主题下<s:fieldError>标签默认样式的移除方法

    前言 当在我们注册用户时,如果给前台的提示是用户名重复并且用户名太长时,就会要往action里面添加多个errors,这时到前台怎么把它依次拿出来 下面话不多说了,来一起看看详细的介绍吧 方法如下 ①找到配置文件 struts2-core-2.3.35.jar/template/simple/fielderror.ftl(不同版本的文件路径大同小异) ②创建新的文件包并拷贝文件 在项目根目录下创建template.simple并将fielderror.ftl拷贝过来 此时根目录下的fielder

  • Vue.js 2.0中select级联下拉框实例

    在网上搜索了Vuejs2.0 动态级联select许久未果,决定自己总结一下自己的经验,有关select在Vue.js 2.0版本中的应用.首先我先说一下的我使用的技术,我参考了网上成熟的经验,选择以Vue.js 2.0+Vue-router+Vuex的全家桶. select首先要区分单选和多选,v-model在select单选和多选上有区别.     select单选实例: <select v-model="fruit"> <option selected valu

  • BootStrap中关于Select下拉框选择触发事件及扩展

    Select下拉框的问题,想在选择一个选项后,前台显示做出变动,并且知道选择的是第几个选项. 这个很好解决: 如下: <div class="page-header"> <div class="form-horizontal"> <div class="control-label col-lg-0"> </div> <div class="col-lg-2"> <

  • Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发

    在使用bootstrap制作后台时用到了响应式导航条,其中dropdown组件更是用的比较多,用的多需要点击的就多,dropdown默认鼠标左键单击才展开,如果使用鼠标放上去(hover)就展开则会省去点击时间,这样能提高效率. 原本的改造思路是:给dropdown元素绑定hover事件,hover上去的时候,执行该元素的click事件--即把hover同步为click,hover即为click. 但想到与其自己来改造,不如先在网上搜索搜索看看有没有现成的插件,果不其然就搜索到了,托管在gith

  • JS中用三种方式实现导航菜单中的二级下拉菜单

    我们在淘宝.搜狐等大型网站上都可以看到使用的一些二级下拉菜单,比如下面这张图片.那么如何实现导航菜单栏中的二级下拉菜单?下面小编给大家分享实现思路. 但是如何实现类似的图片呢?实际上,我们有至少三种方式来实现,下面,我附上代码供大家参考. 1.仅使用html和css <meta charset="UTF-8"> <title>Document</title> <style> *{margin:0;padding: 0;list-style

  • JS 实现导航菜单中的二级下拉菜单的几种方式

    最近整理了, JS 实现导航菜单中的二级下拉菜单的三种方式,便于项目中应用. 如何实现导航菜单栏中的二级下拉菜单? 我们在淘宝.搜狐等大型网站上都可以看到使用的一些二级下拉菜单,比如下面这张图片. 但是如何实现类似的图片呢?实际上,我们有至少三种方式来实现,下面,我附上代码供大家参考. 1.仅使用html和css <meta charset="UTF-8"> <title>Document</title> <style> *{margin

  • JS简单设置下拉选择框默认值的方法

    本文实例讲述了JS简单设置下拉选择框默认值的方法.分享给大家供大家参考,具体如下: //根据下拉对象默认选中后台对应的记录 function setSelectOption(objSelect, targetValue){ if(objSelect){ var options = objSelect.options; if(options){ var len = options.length; for(var i=0;i<len;i++){ if(options[i].value == targ

  • SelecT下拉框选中和取值的解决方法

    Select下拉框的问题,想在选择一个选项后,前台显示做出变动,并且知道选择的是第几个选项. 这个很好解决: 如下: <div class="page-header"> <div class="form-horizontal"> <div class="control-label col-lg-0"> </div> <div class="col-lg-2"> <

随机推荐