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

目录
  • 前言
  • 一、迁移步骤
    • 第一步:安装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

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

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

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

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

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

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

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

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

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

转换前

转换后

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

第四步:使用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

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

3、运行项目即可

总结

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

到此这篇关于微信小程序转换uniapp的迁移步骤以及遇到的问题总结的文章就介绍到这了,更多相关微信小程序转uniapp内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • uni-app 微信小程序授权登录的实现步骤

    目录 一.appID相关申请和配置 1. appid获取方式 2. appID配置 二.获取用户基础数据 2.1. 获取用户信息 2.2. 获取用户信息2 三.调用登录api 3.1. 登录api 3.2. 案例代码 四.获取唯一标识信息 4.1. 官网文档 4.2. 接口简述 五.绑定用户 实现登录 5.1. 代码案例(未封装) 5.2. 代码案例(封装) 六.项目开源地址 6.1. 前端 6.2. 后端 一.appID相关申请和配置 1. appid获取方式 登录微信公众平台 官网链接:ht

  • 使用uni-app开发微信小程序的实现

    前言 9月份,开始开发微信小程序,也曾调研过wepy/mpvue,考虑到后期跨端的需求,最终选择使用了uni-app,本文主要介绍如何使用uni-app搭建小程序项目,以及自己对框架的补充,包括封装request接口,引用color-ui,动态设置底部tab页等,详情见下文 uni-app 介绍(官网) uni-app是一个使用Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台. 即使不

  • uni-app微信小程序登录授权的实现

    微信小程序授权是非常简单和常用的功能,但为了方便,还是在此记录一下要点: 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接口写到该事件里面去 <button class="sys_btn" open-type="getUserInfo" lang="zh_CN" @getuserinfo="appLoginWx&q

  • 微信小程序转换uniapp的迁移步骤以及遇到的问题总结

    目录 前言 一.迁移步骤 第一步:安装miniprogram-to-uniapp 插件 第二步:查看是否安装成功 第三步:使用插件进行转换 第四步:使用hbuilder X运行转换后的项目并在微信小程序编辑器查看 第五步:调试修改 二.处理迁移问题 js部分 templete css部分 三.扩展 总结 前言 背景:由于历史原因,公司有个历史项目使用vue开发的公众号H5,原生开发的微信小程序.两端功能的完全一样,但是需要维护两个项目,最近客户提了需求需要修改部分功能,博主接到需求后,觉得维护两

  • uni-app使用微信小程序云函数的步骤示例

    创建云函数目录 首先,我们需要在uni-app项目文件夹下,创建一个云函数目录,路径随意,我这里是functions.然后先随便在里面放一些文件,这里以new_file.css为例.(放文件的原因是:确保编译成小程序后cloudfunctions文件夹存在.如果该文件夹下没有文件,默认是不会在微信小程序开发平台中显示该文件夹的.) 修改manifest.json 在uni-app根目录下,修改manifest.json中的微信小程序项,结构如下 "mp-weixin" : { /* 小

  • 微信小程序自定义prompt组件步骤详解

    步骤一:新建一个component的文件夹,用来放所有的自定义组件:  步骤二:在该目录下新建一个prompt的文件夹,用来放prompt组件:  步骤三:右击–>新建–>component 直接上代码 wxml <view class="prompt-box" hidden="{{isHidden}}"> <view class="prompt-content contentFontColor"> <v

  • 微信小程序uniapp实现左滑删除效果(完整代码)

    微信小程序uniapp实现左滑删除效果 实现效果 1,列表中侧滑删除 2,删除不同时存在 3,上下滑动与侧滑删除不影响 在本页面引入组件并使用 (文件在文章的最下方附上) 在需要左滑删除的地方使用 <view v-for="(item, index) in csListArrl" :key="index" :data-index="index"> <delSlideLeft :item="item" :dat

  • 微信小程序uniapp添加悬浮菜单的方法

    本文实例为大家分享了微信小程序uniapp添加悬浮菜单的具体代码,供大家参考,具体内容如下 在项目中可能会有一些页面需要加一个悬浮按钮,提供一些额外的菜单本项目通过uniapp来演示如何将一个按钮悬浮在页面右下角有需要的话需要把view标签替换成div 效果: 想直接看全部代码不想看各种逼逼叨叨的请直接翻到最下边.. 一.绘制按钮 通过menushow来控制显示内容,显示菜单时按钮文字变为”隐藏“ <view class="floatbtn" @click="chang

  • 微信小程序的部署方法步骤

    部署环境: jdk1.7 mysql5.6 tomcat7 centos6.5 1资料准备 1)linux服务器,推荐使用阿里云,这里预算有限,所以使用了香港的低配服务器. 2)域名,这里是在阿里云平台上申请的,没有申请到cn,因为身份证信息和网上查询的有问题,我是转到学校的,所以没有审核通过.这里使用的是国际域名.通过审核才能用哈. 3)ac证书,这里也是在阿里云平台申请的,一年免费版,要绑定域名哈,这里直接使用最方便的针对tomcat的证书,人多的话就是用nginx哈.绑定了域名才能用哈.证

  • 微信小程序 删除项目工程实现步骤

    微信小程序如何删除项目工程 微信小程序现在非常火,也许是前端工程师有一个春天的来临,最近学习这部分知识,也做些小的DEMO ,这里就说下如何实现小程序的项目工程删除. 微信小程序本地创建的项目没有删除功能,我通过尝试找到了可以清理的方法,只在Mac osx测试通过,windows可以根据原理自行解决,估计原理都是一致的: 删除数据文件夹下的Default即可,属于全部清理,删除后需要重新扫二维码登录. Mac osx 下目录: $HOME/Library/Application Support/

  • 微信小程序自定义tabBar的步骤记录

    目录 1.前言 2.自定义tabBar样式 3.引入custom-tab-bar及相关配置 4.完整Demo 总结 1.前言 很多时候,小程序自带的tabBar不能够满足项目需求,这个时候就需要我们自定义tabBar了.但是在网上找了很久,基本都是存在切换时闪烁的问题.幸运的是从基础库2.5.0开始,可以官方使用自定义tabBar了. 2.自定义tabBar样式 如下图所示,我们需要一个展示"首页"."我的",和一个可以点击跳转到发布的tabBar.这种样式,原生的

  • 微信小程序自定义tabBar在uni-app的适配详解

    引言:此方法可用作大部分微信小程序支持,但uni-app文档中却找不到相关说明的API 需求 需要在微信小程序中,实现一个中间图标突出显示的异形导航栏. 如下图 实现方法设计 要做这种异形的导航栏,用直接在配置文件里面写list的方法肯定做不到.那么,就有以下两种可替代方法. 在每一个页面都加载一个tabBar组件,与页面同时渲染. 设置自定义tabBar,修改tabBar的样式. 优缺点分析:方法1实现起来略为简单,但是会出现代码可重用率低,降低性能,已经界面跳动等问题.方法2则是微信官方提供

随机推荐