vant4.0+vue3.0 遇到的那些坑

vant的下拉菜单

van-dropdown-menu

这个问题主要是:

  1. 所有的下拉列表都在通过一个van-dropdown-menu 这个容器中
  2. option属性是固定的,不能自定义
  3. 没有单独的标题,不想pc端那样,有个placeholder
 <van-dropdown-menu>
        <van-dropdown-item
          v-model="paramsObj.params.status"
          :options="listDataObject.runListData"
          @change="changeDropDown"
        />
        <van-dropdown-item
          v-model="paramsObj.params.jtype"
          :options="listDataObject.taskTypeArr"
          @change="changeDropJtype"
        />
        <van-dropdown-item
          v-model="paramsObj.params.owner"
          :options="listDataObject.ownerList"
          @change="changeDropOwner"
        />
        <van-dropdown-item
          v-model="paramsObj.params.cluster"
          :options="listDataObject.clusterArr"
          @change="changeDropCluster"
        />
      </van-dropdown-menu>

vant下拉刷新上提加载

其实是list+下拉刷新的组合

<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
  <van-listv-model:loading="loading":finished="finished"finished-text="没有更多了"
    @load="onLoad"
  >
    <van-cell v-for="item in list" :key="item" :title="item" />
  </van-list>
</van-pull-refresh>

const loading = ref(false);
const finished = ref(false);
const refreshing = ref(false);
const onLoad = () => {
  paramsObj.params.page = paramsObj.params.page + 1;
  if (refreshing.value) {
    taskListMessage.taskListArr = [];
    refreshing.value = false;
  }
  getTaskList();
  loading.value = false;
};
const onRefresh = () => {
  finished.value = false;
  paramsObj.params.page = 0
  // 重新加载数据
  // 将 loading 设置为 true,表示处于加载状态
  loading.value = true;
  onLoad();
};

vant选择器

vant4.0+vue3.0 实现van-picker 初始化时默认选中指定选项

[图片]

vant4和 vant3的区别:

vant3.0 实现选中默认选项 defaultIndex
直接配置这个属性就可以

vant4.0 取消了这个属性,用的是这个方法:

const selectedValues = ref(['Wenzhou']) 这个selectedValues 的值必须是数组 必须是v-model这种写法,不能改成:value

最终实现代码:

<van-picker
              :columns-field-names="{ text: 'projectName', value: 'projectId' }"
              cancel-button-text=""
              :columns="listDataObject.projectListArr"
              @confirm="onConfirmProject"
              v-model="listDataObject.selectedValue"
            />
            
            onMounted(async () => {
              listDataObject.selectedValue[0] = myLocalStorage.getItem("projectMessage").projectId

  
        });
对于vant2+vue2项目的搭建,你可以按照以下步骤进行操作: 1. 首先,你需要创建一个vue2项目。你可以使用Vite来创建一个基于vue2的项目。你可以使用以下命令来创建一个vue2项目: ``` npm init vite@latest my-vue-app --template vue ``` 或者如果你使用的是npm 7+版本,你需要使用以下命令: ``` npm init vite@latest my-vue-app -- --template vue ``` 这将创建一个基于vue2的项目。 2. 接下来,你需要安装vue-router来实现路由功能。你可以使用以下命令来安装vue-router: ``` npm install vue-router@3 ``` 然后,你可以在项目中配置vue-router,具体的配置方法可以参考vue-router的官方文档。 3. 如果你想在项目中使用sass变量,你需要在vue.config.js文件中添加以下代码: ``` css: { loaderOptions: { sass: { prependData: '@import "@/assets/style/variables.scss";' } } } ``` 这将允许你在项目中全局使用sass变量。 这样,你就可以搭建一个vant2+vue2的项目了。希望对你有帮助! #### 引用[.reference_title] - *1* [vant4+json+vue3 app项目开发笔记](https://blog.csdn.net/z2000ky/article/details/128774892)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [从零开始搭建vue2+vant2项目](https://blog.csdn.net/zhoushuizhang/article/details/126477900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值