mpvue中的坑

廉价感情. 提交于 2020-04-18 19:55:37

1、关于ui框架weapp的引入

  • a、下载vant静态文件,再从app.json配置。
  • b、 npm 下载 vant 模块,再从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、图片问题

  • 1、wx.chooseImage 如果是多图片上传,数组操作用.push()无法展现。 用array.concat()解决。
  • 2、需要图片根据源文件宽度大小时,在img标签上加上mode='widthFix'。
  • 3、加载本地图片需要放在static目录下,wx.previewImage无法预览本地图片,哎、

9、图片懒加载

vue-lazyload 这货不支持。 mpvue-img-load用着个。

10、关于web-view

只要页面引入了web-view,所有其它html页面都是无效的。 头部只会出现微信自带的组件navigation,可配置背景颜色...

11、分包

mpvue分包 https://juejin.im/post/5d39677de51d4577790c1d6c#heading-2

12、cookies

小程序不支持 cookies,请用插件weapp-cookie

13、有时候双向绑定失效

this.$set(this.imgList, this.imgList) 重新set一下

13、computed问题

mpuve 不支持computed闭包的传参写法,return不回去。

14、scss环境问题之sass-loader

最近试着搭小程序mpvue模板环境,发现mpvue不支持高版本的sass-loader真tm坑。 npm uninstall sass-loader -D(我的是8.0) npm install sass-loader@7.3.1 --save-dev 复制代码15、 scss全局文件的配置

  • 1、安装sass-resources-loader npm sass-resources-loader -D
  • 2、配置build/utils.js
2-1、 在cssLoaders 方法内新增
var sassResourceLoader = {
    loader: 'sass-resources-loader',
    options: {
      resources: [
        //修改相应路径
        path.resolve(__dirname, '../src/scss/entrance.scss'),
      ]
    }
  }
2-2、 在generateLoaders方法内新增

// 使用sass-loader时,添加sassResouceLoader
    if ('sass' === loader) {
      loaders.push(sassResourceLoader)
    }

16、小程序不支持svg

所以icon-font的多色图标不能使用 推荐插件mini-program-iconfont-cli,类似转换。

17、mpvue的template中全局变量问题

不支持绑定在vue.prototype上的全局变量,在js内能获取,template模板上就不行。 解决方法:利用computed计算属性来返回绑定在vue上的全局变量。

computed:{
	getDoMain(){ //获取接口域名
		return this.$doMain
	}
},

18、mpvue中两层以上的对象视图无法修改.

用this.$set也是无效。 this.$forceUpdate()刷新也无效。 解决方法:使用深拷贝,重新赋值给这个对象。

19、mpvue中添加左右滑动事件

20、mpvue中引入腾讯地图sdk

1、sdk下载 2、在sdk.js中 module.exports = QQMapWX; //改为 export default QQMapWX 复制代码3、引入 import QQMapWX from 'XXX/qqmap-wx-jssdk.js'

21、mpvue中页面重置缓存数据。

onLoad() { Object.assign(this.$data, this.$options.data()) },

22、小程序ios页面可以左右滑动问题

经查阅资料,网上方法: overflow-x:hidden; width:100%; 经过测试,ios中不支持overflow-x:hidden,只支持overflow:hidden; 最后发现子内容由于overflow-x:hidden不生效,字内容超出了,所以可以滑动; 解决加上box-sizing:border-box

23、swiper高度无法自适应问题

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!