bmfe / eros-yanxuan-demo

基于 eros v1 改编的网易严选 demo,eros v2 开发的请移步 https://github.com/bmfe/eros-yanxuan-demo-v2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

weex-eros是什么?


weex-eros 是基于 weex 封装面向前端的 Vue2 写法的解决方案。

weex-eros 的定位不是组件库,(后续当然会拓展)由于 app 开发的特殊性,他则更偏重关心于整个 app 项目,他的优势在于我们对 weex 官方的二次封装,能及时跟进 weex 的新特性,并通过脚手架支持更新 module,widget 等机制,让前端同学都能使用 vue 的写法,写出一个属于自己的 app ,也让前端和客户端通过 weex 底层机制来进行交互。

基于 weex 我们已经有两个项目已经发布上线,并且体验得到 weex 相关开发者的认可,weex 的解决方案是值得大家实践的。每次 weex 的更新都能带来惊喜,weex-eros 是我们总结出来的一套混合应用的解决方案,更多的是对 weex 的扩展,解决实际开发问题,我们从 weex 开发中得到了非常多的收益,更希望通过我们的力量推动 weex 的发展。

当然,在您的 PC 上运行 weex-eros,是非常简单的,当您下载好周边所有的工具和库的时候,只需几行命令,配置好本地的 host 和对应的 config.json 文件,便可以进行开发,脚手架也提供指令来更新 weex-eros 基础库,而您无需关心 weex 的版本,因为已经内嵌到基础库中。

为什么会有 weex-eros?


在开发上线两个 weex 项目的过程中,发现并解决了很多 weex 的问题,也在各个交流群中收集了很多问题,发下了一下一些 weex 开发的问题。

  • weex 在初始化时,启动环境会遇到种种问题

  • weex 项目工程化没有很好的解决方案

  • weex 的业务写法前端接受程度不高,编译环境需要二次配置

  • weex 版本升级之后,当前应用扩展设计不足导致很难升级 SDK

  • 随着业务的发展需要对 weex 的 modules 和 components 进行扩展,前端同学的原生扩展能力有限,官方更新不够快

  • 没有配套的增量升级的方案

  • 没有成套的 UI 组件进行简易 APP 快速开发

解决痛点


经过多个实际项目的开发,总结出一套工程化解决的方案,主要解决一下问题

  • 通过脚手架,初始化出完整的项目工程目录

  • 一键启动服务进行实时开发效果查看和 debug 调试(vue、sass、babel 的编译都支持)

  • 实时跟进最新的 SDK,一键命令升级现有工程,使工程实时跟进官方 weex 版本

  • 快速响应大家的需求,增加扩展 components 和 modules,简易的调用方式,灵活的扩展业务

  • 完整的差分包更新方案,快速发布上线业务及更新

  • 以 WeUI 为基础风格,正在逐步完善 UI 组件(考虑各自的 APP 都会有自己的 UI 风格,需求可能会小一些,这部分跟进可能会慢一些)

前期准备


在开发之前可能需要了解一些基础的技术,我们是在下面这些基础知识之上进行开发的。

整体是基于 weex 进行的二次开发,对 weex 进行了二次包装,除了语法上是使用 Vue2,其他 components 和 module(希望使用我们推荐的方式)都可以使用官方的,并且我们更希望开发者能了解 weex 的大致的实现原理,对开发应用会更有帮助。

Vue2.0

业务搭建时,语法都是用 Vue2,支持所有 Vue2 的语法特性。

是一套前端脚手架,支持前端从项目创建到项目发布间的所有自动化工作。

支持性


只支持纯 weexVue 多页面应用开发,正在逐步实现对已有工程的集成方案。(多页面在 weex 使用中性能会更好,页面间切换的动画可以是原生动画)

目前只支持 iOS 和 Android 的开发,暂不支持 web 。目前 Mac 版已进行过测试开发实践,Windows 下已进行兼容。(web 和 native 的交互及用户习惯会有差别,两者所承载的侧重点也会有差别,所以一套开发多套使用并没有让多端更精细化,web 更多是降级方案,但是目前 weex-eros 有内置包和完备的远程更新方案,所以需要降级的场景基本不会出现)

About

基于 eros v1 改编的网易严选 demo,eros v2 开发的请移步 https://github.com/bmfe/eros-yanxuan-demo-v2


Languages

Language:Vue 66.5%Language:JavaScript 12.0%Language:CSS 10.6%Language:HTML 8.9%Language:Java 1.0%Language:Objective-C 0.7%Language:Ruby 0.1%Language:Shell 0.1%