vue 项目快速输出微信、支付宝、百度小程序

栏目: 编程语言 · 发布时间: 7年前

内容简介:上周,Megalo@0.2.0 正式发布,优化了数据更新性能的同时,支持了百度智能小程序,着实激动了一把,这“可能”是目前社区里第一个同时支持三端小程序的 vue 小程序框架。下面我们就来试试他的效果。官方文档的第一部分就是快速入门,顺藤摸瓜,构建一个 megalo 项目。以微信小程序为入口

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

跟着文档走

官方文档的第一部分就是快速入门,顺藤摸瓜,构建一个 megalo 项目。

安装

$ npm install -g @megalo/cli
复制代码
vue 项目快速输出微信、支付宝、百度小程序

构建

$ megalo megalo-yanxuan-demo
复制代码
vue 项目快速输出微信、支付宝、百度小程序

打包

以微信小程序为入口

$ npm run dev:wechat
复制代码

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

转移 weex 项目

我从以前 weex 的 demo 项目, yanxuan-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 即可。

执行三端效果

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

vue 项目快速输出微信、支付宝、百度小程序

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

demo 源码 抛给大家供大家把玩。

哪些可以转

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

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

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

换之即可。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Design Handbook

Web Design Handbook

Baeck, Philippe de 编 / 2009-12 / $ 22.54

This non-technical book brings together contemporary web design's latest and most original creative examples in the areas of services, media, blogs, contacts, links and jobs. It also traces the latest......一起来看看 《Web Design Handbook》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换