微信小程序开发笔记

去年在项目的空档期,自己学习了一下微信小程序的开发。由于之前的项目一直使用的Vue框架,所以在开发小程序的时候决定使用mpVue框架,配合iView Weapp的UI库,成功撸出了一个属于自己的微信小程序。在此也将整个开发过程和其中所遇到的问题记录分享一下。

起步

参考:使用mpvue开发小程序教程

在开发之前,有幸看到了上面链接中的这位大神写的这个教程,让我的开发过程少走了很多弯路。这个教程中每一步都写得特别细致,推荐大家查看。如果是有经验的开发者可以直接看本文,我只选取了开发过程中的关键步骤在此记录。

  • 开发环境

    1. Node
    2. Vue CLI
    3. 微信开发者工具
  • 创建项目

    vue init mpvue/mpvue-quickstart applet

  • 安装依赖

    npm installyarn install

  • 启动项目

    npm startyarn start

  • 在微信开发者工具中打开

    选择小程序项目,项目目录为刚刚新建的applet目录,AppID为微信公众平台注册小程序时生成的原始ID。

至此,如果能在微信开发者工具中看到项目的欢迎页面的话,说明起步工作已经全部完成了。

开发
  • 目录结构

    使用脚手架生成的项目目录结构同Vue项目基本保持一致:

    applet
    ├── package.json 主配置文件
    ├── project.config.json 小程序项目配置文件
    ├── static 静态资源
    ├── src
    │    ├── components 组件
    │    ├── pages 页面
    │    ├── utils 工具
    │    ├── App.vue 入口
    │    └── main.js 入口
    ├── dist
    │   ├── wx 编译后的小程序代码
    ├── node_modules 项目依赖
    ├── config 开发环境相关配置项
    └── build webpack相关配置文件
    
  • 修改app.json

    其中pages为项目的页面路径,由于我使用了v-if实现单页面应用,所以只要一个页面级的入口。
    app.json

  • 配置路由

    由于vue-router在小程序中无法使用,所以我查阅了一下发现大致有两种实现路由的方法。

    1. 使用v-if表达式代替vue-router实现单页应用
    2. 使用mpvue-entry和mpvue-router-patch插件配置路由

    最终我选择了第一种方式作为我这个项目的路由实现。

        <div class="page-box">
          <homepage v-if="current==='homepage'"/>
          <businesscard v-if="current==='businesscard'"/>
          <others v-if="current==='others'"/>
        </div>
    
  • 使用iView Weapp

    之前公司在开发PC端项目时,选用了iView的UI库。而iView也有一套专为小程序设计的UI库,于是我便毫不犹豫地选用了。只需要先从Github下载iView Weapp的代码,然后将dist目录拷贝到自己的项目中,最后在页面的json文件中以usingComponents的方式配置即可。详细使用方式可参考iView Weapp 使用文档

    usingComponents

  • 引入ECharts

    在开发过程中,我希望使用图表来展示我的数据,于是需要引入ECharts图。参考在mpvue使用ECharts小程序组件一文,需要对文件进行一些小小的修改。另外需要注意的是,微信小程序需要控制在2M以内,可以去ECharts官网定制下载自己需要的图表。

遇到的问题
  • 修改navigationBarTitleText

    在路由切换的时候,我希望相应能改变navigationBarTitleText的值,在网上搜索大部分的文章都说的是在页面的js文件中通过添加config的方式实现:

    export default {
      config: {}
    }
    

    可是我试了之后发现并没有生效,最终发现需要在页面同级目录下新建一个json文件进行配置。

    当然,也有文章中提到了可以使用wx.setNavigationBarTitle方法进行修改。

  • mpvue的生命周期

    mpvue中除了延用了Vue本身的生命周期之外,还兼容了小程序的生命周期,详见官方文档。另外还发现了一篇讲解mpvue的生命周期的文章,也推荐给大家:理解mpvue的生命周期

  • mpvue获取用户信息

    参考:mpvue 小程序获取用户信息

    在获取登录信息这块,我希望做的是弹出一个弹窗,让用户自己选择是否登录,而由于获取用户信息需要配置button按钮,于是我修改了一下iView的源码,并写了一个自己的登录组件。
    登录组件

  • rpx与px的换算

    在小程序开发中,可使用rpx作为像素的单位,具体换算规则见官方文档

  • 外链跳转

    在开发小程序的过程中,本来想加一个外链跳到我自己的网站,结果发现个人类型的小程序并不支持外链跳转,详见官方文档

  • 阻止事件冒泡

    参考:微信小程序:冒泡事件及其阻止

  • 背景图片无法读取

    在设置页面背景图时,发现无法生效且控制台报错,查阅官方文档后发现background-image不支持读取本地资源,可以使用网络图片、base64,或者使用<image/>标签。

  • 真机调试报错:ES6转ES5

    在真机调试小程序的时候,发现编译过程报错,最终发现是由于项目中的ES6语法没有编译成ES5导致报错,只需勾选微信开发者工具设置中的ES6转ES5即可。
    ES6转ES5

上线

项目开发完之后,必然就需要上线了。由于我的小程序并不涉及与后端的交互,所以不需要自己买服务器,直接在微信开发者工具中点击上传便可以将代码上传到云端,再进入微信公众平台选择已上传的代码提交审核,审核通过后就可以发布上线了。
上传版本管理

测试

最后,由于我的小程序还没有经过各种机型的测试就草草上线(实在是没有这个条件哈哈哈),希望有缘的朋友在查看我的小程序的过程中如果发现了Bug,请给我留言(烦请注明机型和出现的问题),不胜感激~
小程序码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值