微信小程序转uniapp的迁移步骤及遇到的问题

简介: 微信小程序转uniapp的迁移步骤及遇到的问题

 image.gif编辑

目录

前言

一、迁移步骤

第一步:安装miniprogram-to-uniapp 插件

第二步:查看是否安装成功

第三步:使用插件进行转换

第四步:使用hbuilder X运行转换后的项目并在微信小程序编辑器查看

第五步:调试修改

二、处理迁移问题

js部分

templete

css部分

三、扩展

总结


前言

       背景:由于历史原因,公司有个历史项目使用vue开发的公众号H5,原生开发的微信小程序。两端功能的完全一样,但是需要维护两个项目,最近客户提了需求需要修改部分功能,博主接到需求后,觉得维护两套代码不仅是重复开发,测试起来也麻烦,因为之前是两个人开发不同端的缘故,导致大部分的bug都是因为两端不一致产生的。为了节省时间和维护成本,提升开发测试效率,在反复对比调研,最终选择了uniapp技术框架融合两端进行重构。博主目前正在使用uniapp开发H5和小程序,这篇文章是和大家分享并记录一下原生小程序在迁移到uniapp的步骤和时遇到的问题。


一、迁移步骤

把微信小程序转成uni-app,这里推荐一款【miniprogram-to-uniapp】小程序转换工具插件

第一步:安装miniprogram-to-uniapp 插件

在命令行里,运行【 npm install miniprogram-to-uniapp -g 】进行安装,因为这个包是工具,要求全局都能使用,所以需要-g进行全局安装。

如果运行npm报错,请先安装Node.js,下载地址:https://nodejs.org/zh-cn/

npm install miniprogram-to-uniapp -g

image.gif

第二步:查看是否安装成功

继续在命令行里,运行【 wtu -V 】,执行结果如下

image.gif编辑

显示版本号,说明已经安装成功了

第三步:使用插件进行转换

在命令行里,输入【wtu -i "你的小程序项目路径"】

注意 -i 前面和后面都有空格!!!

注意 -i 前面和后面都有空格!!!

注意 -i 前面和后面都有空格!!!

如:【wtu -i "E:\zpWork\Project_self\miniprogram-to-uniapp\test\test-wx-to-uni"】 ,回车后即可以在源项目同及目录得到一个后缀为_uni的目录,即转换成功。

转换前

image.gif编辑

转换后

image.gif编辑

转换后的项目文件对比(左边是小程序项目,右边是Uni-app项目目录):

image.gif编辑

第四步:使用hbuilder X运行转换后的项目并在微信小程序编辑器查看

将转换后的xxx_uni项目导入到hbuilder X,

点击菜单 运行--> 运行到小程序模拟器-->微信开发者工具!(如果是使用了vant的项目,请运行到H5,vant项目转换后仅支持H5和app)

然后查看转换后的项目运行到小程序,是否可以正常运行无报错!

第五步:调试修改

运行项目,在小程序开发者工具调试迁移页面的报错信息


二、处理迁移问题

根据下方迁移内容,逐一更新页面方法,修复页面报错信息,页面显示、功能运行正常即迁移完成。

js部分

1,删除 const app = getApp();

2,以 wx. 开头的方法更新为 uni. 开头

3,数据绑定 this.setData({ a : 1 }) 更新为 this.a = 1

4,路由跳转 wx.navigateTo()  更新为uni.navigateTo()

5,onLoad(options)

    • 通过options或this.$Route.query获取页面传递参数

    6、部分页面生命周期释义,详见页面生命周期

      • onPullDownRefresh:监听用户下拉动作,一般用于下拉刷新
      • onReachBottom:页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据
      • onShareAppMessage:用户点击右上角分享
      • onPageScroll:监听页面滚动

      templete

      以下几条不影响使用,改不改都行

        1. <block>标签可能是小程序<block>标签或templete模版转换生成的,有的页面转完后可能有多层<block>嵌套的情况,不影响使用,但是不代码太美观,修改的话<block> 标签替换为 <templete> 标签,样式估计也需要调整
        2. 页面事件 例如 <view @tap="clickBtn" data-id="id">点击</view> ,页面转换完使用没问题,但是和平常开发vue不一样,更新的话可以改为<view @click="clickBtn(id)">, 在修改对应方法即可
        3. 引入wxs的页面 <script module="utils" lang="wxs" src="./utils.wxs"></script> 大部分方法可改为 computed、watch,

        css部分

          1. css转换可能失败,大部分是单位转换失败,原px乘2,改为rpx即可
          2. 盒子模型的问题(小程序默认content-box,uniapp默认样式border-box),修改box-sizing即可

          三、扩展

          习惯vue写法来处理router路由的同学,还可以集成一个uni-simple-router插件来管理路由。

          1、使用vue-cli 创建一个新的项目,使用uni-simple-router管理路由。

          vue create -p dcloudio/uni-preset-vue xcxToUniapp
          image.gif

          2、 打开该项目,新建页面,copy转换后的项目的代码

          3、运行项目即可


          总结

                   这篇文章记录了博主用使用uniapp集成H5和小程序两端的一些思路和解决方案。虽然很曲折,但还是很开心,故记录一下。希望这个记录能帮到看到这篇文章的小伙伴。

          image.gif编辑


          目录
          相关文章
          |
          3月前
          |
          iOS开发 开发者
          iOS微信分享配置universal links步骤
          iOS微信分享配置universal links步骤
          1384 58
          |
          1月前
          |
          小程序 前端开发 JavaScript
          在线课堂+工具组件小程序uniapp移动端源码
          在线课堂+工具组件小程序uniapp移动端源码
          32 0
          在线课堂+工具组件小程序uniapp移动端源码
          |
          2月前
          |
          JavaScript 前端开发 小程序
          uniapp一个人开发APP关键步骤和考虑因素
          uniapp一个人开发APP关键步骤和考虑因素
          142 1
          uniapp一个人开发APP关键步骤和考虑因素
          |
          2月前
          |
          移动开发 小程序 数据可视化
          基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
          基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
          333 3
          |
          3月前
          |
          小程序 前端开发
          微信小程序中 vant weapp 使用外部的icon作为图标的步骤
          本文介绍了在微信小程序中使用Vant Weapp组件库时,如何将外部的icon作为图标引入的步骤。包括在项目中创建静态资源文件夹、在iconfont官网添加图标并生成在线链接、下载iconfont代码并解压到小程序目录中、修改iconfont.wxss文件将本地链接替换为在线链接、在全局样式文件中引入iconfont.wxss样式,以及在页面中使用图标的方法。
          微信小程序中 vant weapp 使用外部的icon作为图标的步骤
          |
          2月前
          |
          小程序 API
          微信小程序更新提醒uniapp
          在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
          57 0
          微信小程序更新提醒uniapp
          |
          2月前
          |
          移动开发 小程序 数据可视化
          一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
          一招学会DIY官网可视化设计支持导出微擎、UNIAPP、H5、微信小程序源码
          51 2
          |
          4月前
          |
          小程序 前端开发 Java
          SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
          JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
          116 0
          SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
          |
          2月前
          |
          存储 移动开发 小程序
          uniapp富文本editor输入二次扩展兼容微信小程序
          uniapp富文本editor输入二次扩展兼容微信小程序
          90 0
          |
          2月前
          |
          小程序
          uniapp实现微信小程序隐私协议组件封装
          uniapp实现微信小程序隐私协议组件封装
          53 0
          下一篇
          DataWorks