公司要开发一个小程序,面向用户分为3种角色,因此要本身手写个tabbar(文章编辑中,届时将连接放过来)
由于也是时隔好久写小程序,就选择了跟vue相近的mpvue来写,或多或少也遇到了点问题,现总结一下。vue
开发环境:
系统:MAC,版本10.14.6;
微信开发者工具:Nightly v1.02.1908222;git
VUE: 日常咱们遍历数据可能这么写,key属性写到被包裹的dom上github
<template v-for="item in 10"> <span :key="item">数字: {{item}}</span> </template>
mpVue:小程序他会要求把key属性直接写到遍历的标签上,若是咱们还像上边同样的写法,开发者工具会提示:json
这样一来,template标签就用不成了,由于key写到template上会直接编译报错,咱们只能用实际的标签来代替template小程序
mpVue里正确的写法:微信
<div v-for="item in 10" :key="item"> <span>{{item}}</span> </div>
例如:微信开发
<!-- 子组件 --> <card class="fatherClass" style="color: red;"></card>
终端会直接报错:app
mpVue里正确的写法应该把class/style当成属性传给子组件dom
VUE: 咱们给dom动态绑定class可能会这样写:工具
<p :class="setClass">我是文字</p> data() { return { setClass: { classOne:true, classTwo:false }}} //最终渲染: <p class="classOne">我是文字</p>
这样的写法在mpvue是不支持的,
mpVue里正确的写法:
<p :class="{classOne:setClass.classOne}">我是文字</p> data() { return { setClass: { classOne:true, classTwo:false }}}
小程序的组件,当咱们滚动到必定范围了,咱们想返回顶部,
按理说只要给属性‘setScroll’设置为''或者0便可,
但mpvue使用的时候只设置0不会有效果,必须设置两遍,例如:
<scroll-view scroll-y class="sc_wapper" :scroll-top="setScroll"></scroll-view> //返回顶部 backTop() { this.setScroll = '2'//随便设置一个不为空、不为0的值 this.setScroll = ''//回到顶部效果实现 },
vantUi官网:vant,我是这么使用的,直接下载他的静态资源放到本地mpVue项目里的static目录下,结构以下:
引入的时候这样,在对应目录下建立main.json文件,
main.json里写入:
{ "navigationBarTitleText": "首页", "usingComponents": { "van-button": "/static/vant/button/index" } }
而后页面上便可正常使用,
使用当中发现一个vant的坑,就是设置button的禁用效果失效,只是样式样改变了,实际上仍然还可点击,例如:
<van-button disabled="disabled" type="primary" @click="changeSome">按钮</van-button> changeSome: function() { //button设置了disabled,但方法仍能进来 console.log(123) }
想到的解决方案只能是在方法里加上判断,决定到底要不要执行
网上搜索相关问题并无获得答案,你们有遇到吗
若有不足还请各位补充和指正😁