全球的weex资源都在这里

WeeX FAQ

QQ:

  • Weex大前端 516682889
  • Weexbox: 943913583

WeeX相关资源

  • weex官方资源

    • weex官网
    • Weex Market 已挂 : 一个提供 Weex 第三方组件的网站,您可以在这里找到你需要的 Weex 组件。

      • Playground : Playground在线,直接在线编写代码并预览效果
    • weex-toolkit : Weex 官方提供了 weex-toolkit 的脚手架工具来辅助开发和调试
    • weex-ui官网
    • weex团队的github主页
    • Weex 中文聊天室
    • 轻舟(BOAT) 已挂 : 基于 Weex 技术快速开发跨平台 App 的一站式解决方案
    • segmentfault weex专栏
    • stackoverflow weex专栏
    • weex jira
  • Weex增强框架

    • WeexBox : WeexBox 致力于打造一套简单、高效的基于 weex 的APP混合开发解决方案。

      • 合摩 WeexBox 正式发布
      • WeexBox 1.2.0 新增 Lottie 动画,妈妈再也不用担心我加班写动画了!
    • weexplus

      侵入型较低
      • 用weexplus从0到1写一个app(1)-环境搭建和首页编写
    • bmfe/eros

      eros 不是框架,是基于 weex 封装、面向前端的 vue 写法的一整套 APP 开源解决方案,是由本木医疗大前端团队经过大量实践沉淀而出。
      • 那些年没错过的弯路,WEEX-EROS 开源一年记
      • weex eros框架源码解析
      • 教程:EROS集成到现有iOS应用
  • Weex 第三方UI组件

    • Weex UI :阿里巴巴的weex UI
    • Weex AMUI
    • bui-weex :

专门为 Weex 前端开发者打造的一套高质量UI框架

  • natjs 轻松为你构建的 Weex 应用加入原生功能
  • hbteam/weex-droplet-ui
  • weex实例

    • 官方提供的examples(weex代码中也有同样的例子)

      • 在线体验
    • weex playground app : weex源码自带的demo
    • [Weex集成到现有app的示例]

      • Weex与swift集成的示例
      • https://github.com/apache/inc...
      • https://github.com/apache/inc...
    • Weex开发的网易严选App(原始版zwwill版)
    • Weex开发的网易严选App 使用Eros跨平台开发框架实现的严选功能
    • Weex开发的网易严选App 这个是另一个版本,用eros框架
    • Weex版本跨平台的开源Github客户端App : 有很多资源
    • WEEX仿咸鱼app
    • WeexList

      A complete Demo about Weex, including Custom UI, Network, Events, and the Drop-Down Refresh is Achieved By two ways.
    • mpvue-weex

      一套 Vue 代码,五端可用(H5、小程序、PC、苹果App、安卓App),使用mpvue实现小程序,weex打包APP。系统含50+页面,30+组件(5端通用),170+元件(每个终端独立完成)
    • weexext/weex-toutiao weex仿今日头条 Weex [今日头条]客户端 weexdemo
    • Huahua-Chen/toutiao_Vue2.0 基于Vue2.0全家桶的低配版今日头条
    • MasonLiuChn/WeexExplorer: Web端做SPA,Native端做多页应用并使用Vuex
  • weex相关文章

    • awesome-weex : 资料大全
    • Weex从入门到超神系列
    • [头条祁同伟系列文章]

      • Weex系列(一)之Weex入门准备
      • Weex系列(二)之列表页实战
      • Weex系列(三)之列表页实战冲突解决
      • 深入Weex系列(四)之Module组件源码解析
      • 深入Weex系列(五)之Component组件源码解析
      • 深入Weex系列(六)之Weex渲染流程分析
      • 深入Weex系列(七)之Adapter组件源码解析
      • 深入Weex系列(八)之Weex SDK架构分析
      • 深入Weex系列(九)Weex SDK可借鉴细节总结
      • 深入Weex系列(十)Weex SDK可优化细节思考
      • 深入Weex系列(十一)使用Weex构建一个完整App的思考
    • 木羽系列

      • 【入门】WEEX快速创建工程 Hello World
    • 【Weex】网易严选 App 感受 Weex 开发
    • 记一次 Weex 的 iPhone X 适配
    • 【Weex】纯 Weex 开发一个小游戏
    • Weex BindingX 尝鲜
    • 使用BindingX开发客户端炫酷动画
    • 使用 Weex 和 Vue 开发原生应用
  • 教程

    • weex官方入门教程
    • weex 学习/实践指南
    • Weex 开发教程
    • 集成

      • Swift 中的 weex
      • 【iOS 开发】集成 Weex 注意事项
    • Weex 开发小游戏是件很 high 的事儿
    • 一起来玩Weex
    • iOS開發之Weex爬坑之路環境部署和Devtools Debug(一)
  • 进阶教程
  • 技术文章
    https://github.com/joggerplus...

    • 网易严选 App 感受 Weex 开发
    • Weex实战分享|企鹅电竞Weex实践和性能优化
    • [Weex实战分享|Weex在极客时间APP中的实践

](https://mp.weixin.qq.com/s/at...

  • Weex BindingX 尝鲜
  • 拥抱大前端——从Weex开始
  • 深度文章

    • 深入了解 Weex
    • weex页面传参
    • Halfrost-Field官网

      • Halfrost-Field 冰霜之地:的Weex 源码解析系列 :
      • Weex 是如何在 iOS 客户端上跑起来的
      • 由 FlexBox 算法强力驱动的 Weex 布局引擎
      • Weex 事件传递的那些事儿
      • Weex 中别具匠心的 JS Framework
      • iOS 开发者的 Weex 伪最佳实践指北
    • Weex与原生页面间的相互跳转
  • 应用实践

    • 尚妆达人店 UI 组件化 工程实践(weex vue)
    • Weex在达人店的一年实践
    • Weex 技术在苏宁移动办公开发中的实践
    • Weex避坑指南-理论篇
    • 基于weex的考拉移动端动态化方案
    • Weex避坑指南-理论篇
    • 51信用卡 Android 架构演进实践
    • 网易严选App感受Weex开发(已完结)
    • 基于weex的有赞无线开发框架
  • 应用实践-企鹅电竞系列

    • 企鹅电竞weex实践——UI开发篇
    • Weex实战分享|企鹅电竞Weex实践和性能优化
    • 企鹅电竞动效揭秘
    • 精准微动效解决之道-Lottie
  • WeeX相关ppt

    • weex conf2018大会资料
    • Weex社区过去、现在和未来
    • Weex技术演进
    • Weex在盛大游戏中的应用实践
    • Weex + UI
    • Weex在极客时间App中的实践
    • 企鹅电竞Weex实践和性能优化
  • howto

    • 用Swift写WeexDemo
    • 用Swift写WeexDemo 2
    • 用Swift写WeexDemo 3
    • SimpleSwiftWeexDemo github上的配套源码

知识树

重点关注的知识点

  • 页面传参
  • Native-JS通信

    • JS 调用Native
    • Native调用JS
  • 屏幕适配
  • 配置下发
  • 降级
  • 集成到app (Native 接入)

    • 在Android方面,我们把weex的接入放入了自定义的WeexFragment。另外,新建WeexActivity,引用WeexFragment。这样使用起来更灵活。
    • 在iOS方面,我们把weex的接入放入了自定义的WeexViewController。
  • 分辨率和尺寸

    Weex 对于长度值目前只支持像素 px 值,还不支持相对单位(em、rem),需要 pt 和 px 的换算
    在 Weex 中定义的默认的屏幕宽度是750
  • 通信

    • native 到 Weex js 通信
    • Native 产生的一些事件,是怎么传回给 JS
    • Weex 的事件传递

      一是 Module 模块的 callback,二是通过 Component 组件自定义的通知事件
    • Weex js 到 native 之间的通信
    • Weex js 之间的通信
    • Web 到 Weex js 通信
    • event

      • 轻扫事件
      • 长按事件
      • 拖动事件
      • 通用触摸事件
      • Appear 事件
      • Disappear 事件
      • Page 事件
    • 生命周期事件

工程化

devops

  • 如何构建发布流程

    • weex页面里,如何调用native的网络模块获取到数据
    • 多页面的跳转
    • 调试工具weex devtool的使用方法

      • 利用Weex DevTool调试Native应用-iOS篇
  • 如何解除App组件之间和App页面之间的耦合性?
  • 1.页面降级
  • 性能监控和埋点
    1. 增量更新和全量更新
    1. 首屏加载时间极致优化

Router

  • App之间跳转实现

    • 自家的一系列App之间如何相互跳转?
  • 从外部跳转到App内部一个很深层次的一个界面。
  • 如何在App任何界面都可以调用同一个界面或者同一个组件?
  • 如何能统一iOS和Android两端的页面跳转逻辑?甚至如何能统一三端的请求资源的方式?
  • 组件如何拆分?
  • Native 产生的一些事件,是怎么传回给 JS

    • Weex中js和Native的交互-iOS篇

使用场景

  • 集成 Weex 到已有应用
  • 用weex实现活动模块
  • 原生的iOS工程局部页面嵌入weex的view
  • 如何在H5中使用

扩展

  • Module 扩展 非 UI 的特定功能。
  • Component(UI)
  • Adapter
  • handler
  • 扩展 Android 的功能
  • 扩展 iOS 的功能
  • 使用 swift 扩展 iOS 的功能
  • 扩展 HTML5 的功能

    扩展 Web 渲染器
    weex-vue-render
  • 《拓展JS framework》

最佳实践

需要优化的内容

  • 自定义网络adapter / handler,可以针对网络请求进行拦截修改

    挂接自己的 http 适配器,适度复用 Native 的 http 实现并定制到 weex 中,同时这也是打通 native 登陆凭证和 weex 登陆凭证的必要一环。
    • wb-network [Weexbox]
  • 自定义图片适配器(adapter / handler),可以对图片进行压缩和缓存处理
  • UI增强:confirm、toast、alert
  • 路由:自定义路由,跳转规则

    • 自定义a标签component 拦截url进行跳转
    • weex native webview 无缝跳转
  • 相对地址 热更新 & 预加载weex-JS页面 提高渲染速度

    为了提升渲染效率,我们会提前把js文件下载到本地,使用时直接加载本地文件
    • 静态资源的缓冲和缓冲更新策略配置
    • SonicRuntime VasSonic是腾讯开源的一套完整的Hybrid方案,Github地址: VasSonic,官方定义是一套轻量级和高性能的Hybrid框架,专注于提升H5首屏加载速度。
    • 预加载: 静态资源离线预推
  • 动态缓存:storage module增强

    • wb-storage [Weexbox]
  • 页面局部刷新

工程化

  • 脚手架: 对于公司接入来说我们不太会使用官方提供的脚手架工具,一般都是自己实现

    • webpack
  • 建立组件库
  • 错误监控

参考: 「大前端」Weex在达人店的一年实践

A: 官方文档是最好的入门

Q: 运行weex github上的代码报错:
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
设置环境变量(mac下   ~/.bash_profile)
export ANDROID_HOME=$HOME/Library/Android/sdk
export ANDROID_NDK=$HOME/Library/Android/sdk/ndk-bundle
source ~/.bash_profile同时修改weex_sdk/build.gradle 去掉armeabi(armeabi和mips已经不被cmake支持了)ndk {abiFilters "armeabi-v7a","x86"}

Q: 如何从零开始,创建weex标准项目

第一步:准备开发环境

# 请确保你已经安装了 Node.js,然后全局安装 weex-toolkit。
npm install weex-toolkit -g如果要添加ios或android支持,需要安装xcode或android studio

创建一个空的Weex + Vue.js 模板项目:

weex create awesome-app

运行项目

cd awesome-app
npm install
npm start
或
weex run web然后工具会启动一个本地的 web 服务,监听 8081 端口。你可以打开 http://localhost:8081 查看页面在 Web 下的渲染效果。 源代码在 src/ 目录中,你可以像一个普通的 Vue.js 项目一样来开发.

添加特定ios或android支持

默认情况下 weex create 命令并不初始化 iOS 和 Android 项目,需要执行以下命令:安装相关组件
weex platform add ios
weex platform add android

在模拟器或真实设备上启动应用

weex run ios
weex run android
weex run web

Q: 如何在自己的app项目中d导入weex官方正式发布的Weex SDK(集成 Weex 到已有应用)

WEEX 会在jcenter 定期发布稳定版本。jcenter
注:国内可能需要翻墙

android集成:
修改build.gradle 加入如下基础依赖(版本请替换为最新版)

compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.alibaba:fastjson:1.1.46.android'
compile 'com.taobao.android:weex_sdk:0.5.1@aar'

iOS集成
在 Podfile 文件中添加如下内容

pod 'WeexSDK', '0.17.0'   ## 建议使用WeexSDK新版本pod install

Q: 如何在自己的app项目中将Weex SDK源码作为模块导入项目中(集成 Weex 到已有应用)

一般来说,直接使用官方正式发布的week-sdk库(android通过jcenter引入sdk,ios通过cocoaspod引入sdk),只有希望使用最新的weex功能时才需要将sdk源码导入到自己的app中(作为模块和app一起编译)。能够快速使用WEEX最新功能,可以根据自己项目的特性进行相关改进。

Andorid通过以下步骤import SDK

下载源码 
git clone https://github.com/apache/incubator-weex.git创建 Android 工程。通过以下路径引入 SDK Module:
File->New-Import Module-> 选择 WEEX SDK Module(weex/android/sdk) -> Finish设置app 的 build.gradle,添加如下依赖:
compile project(':weex_sdk')

iOS通过以下步骤import SDK

自己编译好SDK后,将sdk(framework文件)导入自己app工程:
,参考官方文档:https://weex.apache.org/cn/guide/integrate-to-your-app.html

Q: 如何自己编译week SDK

一般来说,推荐使用官方正式发布的week-sdk库(android通过jcenter引入sdk,ios通过cocoaspod引入sdk),只有希望使用最新的weex功能时才需要自己手工编译SDK

编译sdk方法有两个,一种是用提供的编译脚本进行自动编译(请参考代码库中的HOW-TO-BUILD.md),一种是用android studio或xcode手工编译

Andorid通过以下步骤编译并生成 SDK

下载源码 
git clone https://github.com/apache/incubator-weex.git在Android Studio中打开Weex SDK选择打开已存在的andorid项目:
(weex/android/sdk) 选中代码目录中的weex_sdk模块
Build -> make moudle weexsdk编译后的sdk:weex_sdk-debug.aar(位于weex/android/sdk/build/outputs/aar/) 

iOS通过以下步骤编译 SDK

git clone https://github.com/apache/incubator-weex.git打开 WeexSDK.xcodeproj in weex/ios/sdk
切换到WeexSDK_MTL target编译当前target,可以直接用快捷键 ⌘ + b最后找到产物在 weex/ios/sdk/Products 目录

Q: 能否将vue项目结构转换成weex项目?

Q: Weex中的组件(component),模块(module),扩展,三者有何区别?

组件一般指的是UI组件,module相当月插件,提供一些工具方法。扩展指的是开发组件的过程


Q: 如何编译weex的playground app?

直接用android studio打开 android/palyground项目即可


Q: 解决iOS WeexSDK与WechatSDK中枚举WXLogLevel命名冲突

https://bmfe.github.io/2018/0...


工程化

将 components 抽离出来,放到内部私有 npm 仓库中以 npm 包的形式去维护。
也就是我们将 spon-ui(内部组件库名称)作为单独的一个项目去维护,加以约束形成组件库开发规范

作者:尚妆产品技术刊读
链接:https://juejin.im/post/5a2d3d...

WeexBox FAQ


Q: 如果报错说lotties找不到某些文件,可能是需要升级cocaspods到1.6.0
could not build Objective-C module 'Lottie
sudo gem install cocoapods
Q: ERROR: Failed to download Chromium r624492! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280159.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初步解决博客园代码高亮的一个方案

今天我要推荐的是一个免费而且支持markdown语法的软件——Typora 它有很多优点,支持多种类型代码的高亮风格,方便的排版处理,支持Latex等,最重要的一点是真正做到了所见即所得ヽ(゚∀゚)メ(&#x…

git工作原理

工作区:就是你在电脑里能看到的目录。暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。版本库&#xf…

【前端基础进阶】JS-Object 功能详解

Object.assign(target,source1,source2,...)该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身属性,不拷贝继承的属性。Object.assign方法实行的是浅拷贝,而不是深拷贝。也就是说&am…

网页下载Google Play 的App

网页下载Google Play 的App 文章目录[点击展开](?)[] 前言 当你想在google play上下载某个应用,而无奈手机的系统并没有安装google servicess,此刻是否有些捉急? 本文分享的是一个网站,它可以无需手机而直接通过网页下载Google P…

上传jar包到nexus私服

进入maven管理页面&#xff0c;登录管理员账号 完成后可以进入对应目录下查看pom依赖 通过maven的方式depoly 在maven的conf/setting.xml 配置nexus私服的管理账号 在servers标签下添加server <server><id>nexus-snapshots</id><username>repouser<…

【Android】RxJava的使用(四)线程控制 —— Scheduler

前言 经过前几篇的介绍&#xff0c;对RxJava对模式有了一定的理解&#xff1a;由Observable发起事件&#xff0c;经过中间的处理后由Observer消费。&#xff08;对RxJava还不了解的可以出门左拐&#xff09;之前的代码中&#xff0c;事件的发起和消费都是在同一个线程中执行&am…

Linux常用开发环境软件-Redis安装(docker环境下)

linux&#xff0c;docker安装RabbitMQ版本 1、从docker官网仓库下载安装RabbitMQ镜像 官网地址&#xff1a;https://hub.docker.com/ docker pull redis:4.0.8  //后面是版本,Tag Name 2、启动Docker Redis镜像 docker run -d -p 6379:6379 redis:4.0.8  启动镜像&#xff…

lvs+keepalived详解

常用软件安装及使用目录 资源链接&#xff1a;https://pan.baidu.com/s/15rFjO-EnTOyiTM7YRkbxuA 网盘分享的文件在此 官网&#xff1a;http://www.linuxvirtualserver.org/index.html 中文资料 LVS项目介绍 http://www.linuxvirtualserver.org/zh/lvs1.html …

微信自动打卡

要有第二台安卓 手机&#xff0c;打开usb、adb调试&#xff0c;永不锁屏&#xff0c;永不休眠&#xff0c;手机安装了微信并至少成功登陆过一次&#xff0c; 一台不关机的电脑&#xff0c;手机连接电脑&#xff0c;Appium服务器保持启动&#xff0c;在开始菜单 设定好任务计划程…

Linux之read命令使用

ead命令&#xff1a; read 命令从标准输入中读取一行&#xff0c;并把输入行的每个字段的值指定给 shell 变量 1&#xff09;read后面的变量var可以只有一个&#xff0c;也可以有多个&#xff0c;这时如果输入多个数据&#xff0c;则第一个数据给第一个变量&#xff0c;第二个数…

python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包

楔子 假如有一个函数&#xff0c;实现返回两个数中的较大值&#xff1a; def my_max(x,y):m x if x>y else yreturn mbigger my_max(10,20)print(bigger) 之前是不是我告诉你们要把结果return回来你们就照做了&#xff1f;可是你们有没有想过&#xff0c;我们为什么要把结…

hive(II)--sql考查的高频问题

在了解别人hive能力水平的时候&#xff0c;不管是别人问我还是我了解别人&#xff0c;有一些都是必然会问的东西。问的问题也大都大同小异。这里总结一下我遇到的那些hive方面面试可能涉及的问题 1、行转列&#xff08;列转行&#xff09; 当我们建设数据仓库时&#xff0c;我们…

.Net+MySQL组合开发(二) 数据访问篇

一、建立数据库、表、添加数据这里我们使用图形化操作的SQL Manager 2005 Lite for MySQL来建立数据&#xff0c;它的操作界面非常类似OFFICE软件&#xff0c;使用方便、很容量上手、下面开始建立数据库及表单击"Creat New DataBase"&#xff1a;新建DB输入密码&…

Git vs SVN

一、Git vs SVN Git 和 SVN 孰优孰好&#xff0c;每个人有不同的体验。Git是分布式的&#xff0c;SVN是集中式的这是 Git 和 SVN 最大的区别。若能掌握这个概念&#xff0c;两者区别基本搞懂大半。因为 Git 是分布式的&#xff0c;所以 Git 支持离线工作&#xff0c;在本地可以…

Burpsuite学习(4)

2019独角兽企业重金招聘Python工程师标准>>> burpsuite spider模块通过跟踪 HTML 和 JavaScript 以及提交的表单中的超链接来映射目标应用程序&#xff0c;它还使用了一些其他的线索&#xff0c;如目录列表&#xff0c;资源类型的注释&#xff0c;以及 robots.txt 文…

Git删除分支/恢复分支

这是https://www.cnblogs.com/utank/p/7880441.html的方法&#xff0c;虽然很老现在有点不一样&#xff0c;但总体还是能用的。 总结就是两种方法 1.用commit的id恢复 2.用reflog的头指针恢复 •删除一个已被终止的分支 如果需要删除的分支不是当前正在打开的分支&#xff0c;使…

NetCore2.0Web应用之Startup

为什么80%的码农都做不了架构师&#xff1f;>>> 作为main函数的程序启动文件UseStartup 默认就是调用我们的整个应用程序的启动文件 class Program{static void Main(string[] args){var host new WebHostBuilder().UseKestrel() // 指定WebServer为Kes…

Hadoop----hdfs的基本操作

2019独角兽企业重金招聘Python工程师标准>>> HDFS操作文件的基本命令 1.创建文件夹 $>hdfs dfs -mkdir /user/centos/hadoop 2.展示目录 $>hdfs dfs -ls -r /user/centos/hadoop 3.递归展示 $>hdfs dfs -lsr /user/centos/hadoop 4.上传文件 $&g…

03 Oracle分区表

Oracle分区表 先说句题外话… 欢迎成都天府软件园的小伙伴来面基交流经验~ 一&#xff1a;什么是分区&#xff08;Partition&#xff09;&#xff1f; 分区是将一个表或索引物理地分解为多个更小、更可管理的部分。 分区对应用透明&#xff0c;即对访问数据库的应用而言&…

windows获取本地时间_如何在Windows 8中重新获得本地登录

windows获取本地时间By default a fresh Windows 8 installation prompts you to create a synchronized cloud-enabled login. While there are distinct perks to Microsoft’s live login system, sometimes you just want to keep things simple and local. Read on as we …