关于mpvue的几个坑点

微信小程序的框架众多,而如今我只想记录一下mpvue的几个点...祝你采坑成功。css

微信小程序在语法规范、API、组件外,由于多了个可组件化component,主要点始终落在app.json、app.wxss、app.js和每一个页面和组件的配置上,都是类似雷同的事情,详情移步官方文档vue

相对而已,mpvue是在vue基础上加入了微信小程序的支持,在loader和编译方面多作支持,编码规范以vue为标准。node

使用

如今已vue-cli生成mpvue/mpvue-quickstart模板深刻vue-cli

相对于原生小程序,mpvue在代码目录主要维护:npm

  • App.vue: 做为小程序的建立点和挂载点
  • main.js
  • app.json
  • vue模型的组件页

配置每页导航栏信息

v1.1.1如下

找到每页的的main.js,添加export default对应内容json

import Vue from 'vue'
import App from './index'
const app = new Vue(App)
app.$mount()
export default {
  // v1.12后再也不使用config为到场app.json
  config: {
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "微信接口功能演示",
    "backgroundColor": "#eeeeee",
    "backgroundTextStyle": "light"
  }
}

v1.1.1以上

直接使用小程序

  • main.js
  • main.json

动态替代方案:

wx.setNavigationBarTitle({
  title: '关卡'
})

FAQS

报错mpvue 未找到入口 app.json 文件

正常状况: 微信小程序

npm run devapi

执行一下mpvue的编译微信

在dist目录下会自动产生一个app.json

题外话:安装依赖包的时候或者npm run dev的时候提示缺乏依赖的话,直接把node_modules 下面的文件所有删掉,而后从新npm intall 简单粗暴解决问题

分析: 由于缺少依赖而没自动生成app.json

解决之道: 只须要把packpage.json里的mpvue-loade后面的‘^’去掉,从新安装依赖便可。

npm install
npm run dev

npm run dev 没法编译成功

状况以下:

$ npm run dev
> color-life@1.0.0 dev /home/happy/Dev/coding/color-life
> node build/dev-server.js

尝试以下也没法解决:

1.npm run dev不行
2.删除module重装也不行
3.从新初始化项目也不行

这主要是编译时遇到代码缺失

解决:

若是有组件只有纯template,加上便可:

<script>
  export default {}
</script>

v-show使用失效

分析v-show的特色:

  • v-show只能简单的切换元素的css属性 display
  • 不支持 <template> 元素
  • 不支持 v-else

使用v-show时,很容易将v-show直接下载建立的组件上,如

<template>
    <components v-show="isShow"></components>
</template>

所以组件的显隐状态没法根据isShow响应状态

解决:

只须要在组件外包括一层元素进行控制

<template>
    <div v-show="isShow"> 
        <components></components>
    </div>
</template>

科普:v-if直接是建立-销毁组件

拥有slot的组件没法自动编译成功

只须要关闭编译从新运行

npm run dev
相关文章
相关标签/搜索