背景
由于公司要用刚小程序开发个旧项目。历时一个月,来说说遇到的坑吧。
用到的技术
- mpvue
- vant(weapp)
1、关于ui框架weapp的引入
不是传统的npm模块的安装引入,安装后需要下载静态文件,再从app.json中引入,
看官网链接官网教程。
2、app.json
- 这相当于微信的配置文件,里面可设置增加页面,插件(例如weapp组件的引入),增加了页面后,每次都要
npm run dev,不然不生效。
3、mpvue,没有路由这个概念。
- 若要使用,请装
mpvue-router-patch,这个插件。 router.push({ path: '/pages/news/list', reLaunch: true }),只能跳转7次(或者5次,具体忘了),可改用$router.replace(但此项不支持微信原生的tab的跳转。)
4、v-html 无效
html内想解析'<p>213</p>'字符串标签,用v-html,无效。- 解决方法:利用
mpvue-wxparse这个插件。
5、dom问题
- 小程序内没有dom的概念,所有使用到dom的插件都报错。
querySelector,$refs这些都不可以。。
6、父子组件传值问题
- 父->子,props传值,子组件的
html内渲染时能拿到这个值。 - 在
onShow(),mounted()方法内是拿不到的,在methods的方法内可以拿到。(生命周期问题) - 解决方法:
vuex,watch这个参数。
7、textarea问题
- 这个是真的操了蛋,
textarea内设置了placeholder属性,这个层级是最高的,有弹窗的话,会覆盖这个弹窗。如下图,z-index怎么设置都是无效的。图片
- 解决方法:弹窗打开时隐藏这个
textarea,关闭时显示这个textarea。
8、wx.chooseImage
- 如果是多图片上传,数组操作用
.push()无法展现。 - 用
array.concat()解决。
9、图片懒加载
vue-lazyload这货不支持。mpvue-img-load用着个。
我也刚刚入手,如有问题,欢迎指出。