小程序使用vant weapp,官方快速上手教程npm构建报错

以此详细记录一下如何在小程序项目中使用vant weapp 以及搭建UI框架过程中遇到的坑

1、创建项目 (使用云开发),创建后目录结构如下

2、根据vant weapp官方文档 快速上手开始配置项目

youzan.github.io/vant-weapp/...

2.1 安装vant weapp

(这里选择yarn安装,因为通过实测 npm安装不会在根目录创建package.json, 安装后需要手动添加, 而yarn可以默认添加package.json。没有yarn得小伙伴们先使用 npm install -g yarn 全局安装)

安装成功后目录多出了两个文件,如下图

2.2 - 2.3 配置快速上手2、3步

2.4 执行第四步 构建npm (先去详情中勾选使用npm模块, 然后在 工具 -> 构建npm)

截止2022年2月10号,小程序版本库默认为2.22.0 这时候没有可勾选的npm模块, 直接在工具中构建npm即可

构建成功

3、删除无用的目录结构 : 删除page中无用的文件、删除app.json中无用的目录 、调整app.wxss

删除后的目录结构

4、引入组件 正常使用 至此 已可使用vant weapp进行正常的小程序开发

5、说一下从开始使用到正常进入开发流程遇到的坑

3年前专注过1.5年的小程序 然后跳槽新公司转型vue, 过去3年里专注vue管理端(v2 + cli + 全家桶),间断这写了一个小程序项目,可以说是3年没写过小程序的(资深)开发者了

5.1 没有使用云端开发的目录结构,并且在快速上手的第一步使用了npm i @vant/weapp -S --production (它不会自动生成package.json)

生成目录结构 以及安装后的结构 如下图

作者开始的选择,创建完小程序项目后对比vant weapp文档,一脸懵逼

结果到第四步npm构建的时候一直报错 找不到package.json

但是咱是cli资深玩家呀,vue.config.js不就是手动创建的么 ? 这能难的住我 ? 分分钟就手动新建一个

然后继续构建npm, ok提示找不到miniprogram...

这不是问题 继续新建空白文件夹 miniprogram

然后继续构建npm, 成功了! 281毫秒!! 完美.jpg

然后引入vant weapp 。 报错

到这里 我已经开始头皮发麻了 。 这啥呀 ? 一步一坑? 然后开始查资料 github / vant 文档/ 百度 (后面我甚至在空白的miniprogram下把整个node_modules拷贝了进去 然后 "packageJsonPath": "./package.json", / "miniprogramNpmDistDir": "./miniprogram/" 又开始各种报错)

查了一圈, 没结果 然后去github下的vant weapp项目下提issue

这里是关键的一步,也是最后能完美认识问题的关键 因为社区有一个老哥 给我录了一个视频 并上传了百度网盘 。然后我仔细看了3遍 ,十分感谢这位热心肠老哥哥。

找到问题根源后,再进行各种对比,各种测试,最后终于弄清楚了其中的奥妙,编程的乐趣就在其中。

5.2 toast / dialog 使用问题

toast

官方文档引入路径

import Dialog from 'path/to/@vant/weapp/dist/dialog/dialog';

这个path/to就很灵性了, 然后上面还有一个

<van-dialogid="van-dialog" />

看完之后 就是这个表情 黑人问号脸.jpg

然后百度 终于知道

先在app.json中引入 "van-dialog":"@vant/weapp/dialog/index";

然后在wxml中引入<van-dialogid="van-dialog" /> ;

最后在js文件中 import Dialog from '@vant/weapp/dialog/dialog';

然后可以使用了, 但是表现形式如下

纳尼 ?有点丑啊 ? 但是它官网例子表现形式如下

原因也在社区找到了 如下 (它最新版是1.9.2)

dialog

这个组件使用中有2个问题

1、使用组件形式 以及它本身的confirm / cancel按钮 点击confirm后不管回调如何判断 自动关闭当前弹窗。这有点不科学

解决办法是自己写btn 不使用自带的按钮

2、使用确认dialog.confirm 点击确认会连续触发确认 、取消按钮。 也就是说点击确认 会先then 再catch . 就。。。很迷

解决办法是使用组件形式 自定义btn按钮

其他的都是小问题了就不赘述了

然后现在项目开发也结束了 ,

开发过程开始还是习惯写v-if / @click / 以及在 这种 vue语法,后来翻翻文档又接触了wsx , template 以及 useComponents。

总体体验:

开发者工具的容错率有点高 好多应该报错的没有报 然后造成线上问题;

然后就是与真机还是不能保持完全一致, 希望小程序继续加油!

(早点解决input blur事件晚于页面bindtap事件等等问题 - -!)

相关推荐
YoAAMe15 天前
vant 动态查询下拉菜单(可用)
vant
wocwin1 个月前
Vue2移动端(H5项目)项目基于vant实现select单选(支持搜索、回显、自定义下拉label展示功能)
vue.js·vant·移动端·下拉选择·vant-ui·组件封装·select单选
小陈同学呦2 个月前
五分钟带你学会Vant 4的使用
前端·javascript·vant
ELNino_Thomas.Liang3 个月前
vant的dialog触发了其他overlay
前端·javascript·vue.js·html·vant
程楠楠&M3 个月前
vue3.0 + vant实现下拉刷新上拉加载
前端·javascript·vue.js·vant·上拉加载,下拉刷新
Ying(英子)3 个月前
在微信小程序中安装和使用vant框架
微信小程序·小程序·vant·全局使用vant·vant安装与使用·微信小程序入门·小程序安装vant
疯人院院长4 个月前
移动端H5页面使用Vant组件库下拉刷新和页面滚动事件冲突
前端·vue.js·elementui·html5·vant
wocwin5 个月前
Vue2 移动端(H5)项目封装弹窗组件
vue.js·vant
CharlieWang6 个月前
2024 推荐一款 Vue3 移动端模板 (十个理由🎉)
前端·vue.js·vant