博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vue 项目快速输出微信、支付宝、百度小程序
阅读量:5995 次
发布时间:2019-06-20

本文共 1903 字,大约阅读时间需要 6 分钟。

上周,Megalo@0.2.0 正式发布,优化了数据更新性能的同时,支持了百度智能小程序,着实激动了一把,这“可能”是目前社区里第一个同时支持三端小程序的 vue 小程序框架。下面我们就来试试他的效果。

跟着文档走

的第一部分就是,顺藤摸瓜,构建一个 megalo 项目。

安装

$ npm install -g @megalo/cli复制代码

构建

$ megalo megalo-yanxuan-demo复制代码

打包

以微信小程序为入口

$ npm run dev:wechat复制代码

至此一个完整的 megalo 项目就构建好了,接下来我们开始转移源码

转移 weex 项目

我从以前 weex 的 demo 项目,,为基础进行转移,转移过程中涉及到很多 weex 特有的 api 的移除和转换。

网络请求

以网络请求为例,weex 是使用的 stream

let stream = weex.requireModule('stream');export default {    methods: {        GET (api, callback) {            return stream.fetch({                method: 'GET',                type: 'json',                url: api            }, callback)        }    }}复制代码

因为小程序都有提供网络请求的 API,所以此处对此进行改造,如下

export default {    methods: {        GET (api, callback) {            let { platform } = this.$mp || {},                request = ()=>{}            switch(platform) {                case 'wechat':                    request = wx && wx.request                break;                case 'alipay':                    request = my && my.httpRequest                break;                case 'swan':                    request = swan && swan.request                break;                default:                break;            }            request && request({                url: api,                success: callback            })        }    }}复制代码

类似的还有 toast、message 等组件的改造。

组件

由于 weex 中的 <recycle-list><loading><refresh><scroller>等组件在小程序组件内是不存在的,所以有三种解决方案

  1. 自定义一个同名 vue 组件
  2. 找小程序可用的组件替换
  3. 实在不行就砍掉需求吧

比如 weex 的 <slider> 组件,可以用小程序的 <swiper> 替换,好在微信、支付宝和百度小程序都有支持。

css

Weex 容器默认的宽度 (viewport) 是 750px,小程序以 750rpx 为基。所以直接将需要的 px 转换成 rpx。

另外自己实现了 1 像素的 wpx,替换成 px 即可。

执行三端效果

最后看下改造效果。同时执行三端

效果比预想的要好,没有过多的适配出错

抛给大家供大家把玩。

哪些可以转

只要现有工程没有做以下几件事,理论上,都是可以转移的,只需要稍微更新一下格式

  • 使用
  • 涉及浏览器特有的 dom 操作,window、userAgent、location、getElementById 等
  • 使用第三方组件库且该组件库使用了 dom 操作
  • 使用了 vue-router,暂不支持

不过,方案都是可以调整的,以上功能在社区均可以找到替代方案。

换之即可。

参考


首发:

作者:木羽

转载请标明出处

你可能感兴趣的文章
Elasticsearch基本概念及核心配置文件详解
查看>>
一次使用Python连接数据库生成二维码并安装为windows服务的工作任务
查看>>
ios_基础篇1_关键字(strong和weak)
查看>>
PageControl
查看>>
我的友情链接
查看>>
远程桌面用户输入法的配置
查看>>
【Getty】Java NIO框架设计与实现
查看>>
常用监控命令工具-----vmstat
查看>>
说一下刚接触Gitlab,汉化遇到的坑。
查看>>
iCloud存储原理与部分操作
查看>>
IIS无法启动,提示“服务没有及时响应启动或控制请求”
查看>>
6.《SQLSERVER2012之T-SQL教程》T-SQL子查询
查看>>
Day1_HTML_超链接
查看>>
IT名词解释与专业术语
查看>>
经验:利用RAC环境解决本机SQLPLUS异常一例SP2-1503
查看>>
Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析(《深入分析java Web》技术内幕-11)...
查看>>
谈谈如何学Linux和它在如今社会的影响
查看>>
通过yum方式在CentOS 7上部署Kippo
查看>>
风险管理、收尾管理、知识产权管理
查看>>
【安全牛学习笔记】Kali Linux***测试方法
查看>>