/utils/getPath.js').getPath 2.methods中跳转放法为 navigator.push({ url: getPath('components/文件名'), animated
exports.getPath = function (pathWithoutSuffix, params) { var path = ''; let platform = weex.config.env.platform...; let bundleUrl = weex.config.bundleUrl; var exp = new RegExp(".+/"); var baseUrl = exp.exec(bundleUrl...platform.toLowerCase() === 'web') { path += pathWithoutSuffix + '.html' } else { path += pathWithoutSuffix + '.js
目录 1.Weex JS Framework 初始化 2.Weex JS Framework 管理实例的生命周期 3.Weex JS Framework 构建Virtual DOM 4.Weex JS...Weex JS Framework 初始化 分析Weex JS Framework 之前,先来看看整个Weex JS Framework的代码文件结构树状图。以下的代码版本是0.19.8。...至此,Weex JS Framework就算初始化完成。 二....Weex JS Framework 处理Native触发的事件 最后来看看Weex JS Framework是如何处理Native传递过来的事件的。...了解 Weex 的 JS 引擎的特性支持情况。 适配 Weex 的 native DOM APIs。 适配 Weex 的初始化入口和多实例管理机制。
上一篇写了Weex的开发环境搭建Weex开发之-开发环境搭建,接下来我们来写一个Hello Weex 首先我们创建一个Weex项目,使用下面的命令 weex create WeexDemo 创建好后我们在...console.log(e); alert('title clicked.'); } } } 然后我们cd到hello 目录下,执行命令生成JS...文件给iOS调用 weex compile helloWeex.vue dist Weex是如何集成到iOS的这里就忽略了,网上有很多集成的文章。...文件 NSString *jsURl = [[NSBundle mainBundle] pathForResource:@"helloWeex"ofType:@"js"]; NSURL...参考 Weex入门与进阶指南 iOS14适配:Xcode12+weex图片不显示问题
开发者首先可以在本地像撰写 web 页面一样撰写一个 app 的页面(Weex File),然后编译成一段 JavaScript 代码(transformer),形成 Weex 的一个 JS bundle...;在云端,开发者可以把生成的 JS bundle 部署上去(deploy),然后通过网络请求或预下发的方式传递到用户的移动应用客户端(Server————>JS FrameWork);在移动应用客户端里...,WeexSDK 会准备好一个 JavaScript 引擎(JSCore、V8),并且在用户打开一个 Weex 页面时执行相应的 JS bundle,并在执行过程中产生各种命令发送到 native 端进行的界面渲染或数据存储...此处主要推荐下Weex的开发使用工具: Sublime 安装、破解可以参考《mac sublime3 破解版的安装、插件管理和配置》; 安装的一些插件:Emmet、HTML-CSS-JS Prettify...推荐看一些HTML+CSS的基础课程,比较推荐慕课网(真不是广告); Vue也是比较好入门的,只要理解了双向绑定,参考文章《Vue.js——60分钟快速入门》;
目前 Weex 与 Vue 正在展开官方合作,并将 Vue 2.x 作为内置的前端框架,Vue 也因此具备了开发原生应用的能力,也就是说我们上层是使用vue.js 语法进行代码编写,然后通过打包工具将这些代码打包成...app.weex.js文件,下发都手机端,由SDK进行解析,使用手机原生的组件进行渲染!...F3D0C72A-0354-4FF2-9302-935882CCEB0C.png 我把教程分为两部分内容 执行文件app.weex.js 开发阶段 app 开发阶段 app.js 这个是我们打包时的入口文件...友情提示 如果您打包的文件是用于iOS 和 安卓等客户端渲染的代码,这个el的值可以不用设置,weex客户端的SDK会默认将其挂在根节点上 接下来 我们应该学习的是weex中的组件,但是在这之前..., 先讲解一下weex中的布局和限制
对于二者最核心的能力就是JS引擎与Native的交互能力,别的类如Js框架、组件支持、工具链、扩展、生态等实际上都是附属,都是一项技术的附带产物,为了赢得开发者的支持而做的。...对于Weex而言其实只要保留下Js与Native的交互能力,别的各种产物我们都可以自己实现一份,思路不会有大的差别。...3、Weex框架分析 大家回忆下关于各个组件源码分析的文章中: 首先离不开的就是JSBridge,这是JS与Native交互的桥梁;对应于通信层; JS发回来的每一个指令都会先经过各种Manager的处理...、Component、Adapter等;对应于组件层; 4、Weex框架图 我们再对着框架图分析一遍:WXBridge负责JS引擎与Native的交互、框架层负责将JS指令进行处理、通讯层进行各个线程的切换...、每一个JS指令都对应了组件层的执行。
尽管如此,Vue.js仍然有一个限制,它还不能像React的React Native,Vue.js目前还没有稳定、广泛采用的方法来开发原生应用程序。 不过,这肯定会改变!...目前有两个框架正在开发,可以打开用Vue.js框架创建本地应用程序之门,我们都很喜欢的:Weex和NativeScript。...组件之间的桥梁,让你可以用Vue.js构建跨平台的应用程序。...-project-6b94981bee4e 使用Weex来构建的应用清单: https://github.com/tralves/weex-todo-list NativeScript + Vue.js...分享一个 Vue.js 2 的全家桶系列教程: 1.vue.js 2 入门与提高: http://xc.hubwiz.com/course/vue.js 2.vuex 2 入门与提高: http://xc.hubwiz.com
最新版本的weex已默认将vue.js作为前端框架,而weex-hacknews则是weex官方出品的,首个使用 Weex 和 Vue 开发的 Hacker News 原生应用,在项目中使用了 Vuex...因此这个应用可以作为weex-vue开发的典范,分析该项目代码可以了解如何使用weex技术栈进行开发,实现同一份代码在 iOS、Android、Web 下都能完整地工作。...官方router ,它与Vue.js核心深度集成,使得使用Vue.js构建单页面应用程序变得轻而易举,包含如下特性: 嵌套路由/视图映射 基于组件的路由器配置 路由参数,查询,通配符 集成Vue.js...weex中通过stream提供网络访问功能,通过stream.fetch获取,注意fetch.js里fetch函数返回的是一个Promise对象 关于Promise,不了解的可以查看(https://...官方demo weex-hackernews代码解读(下)
那么本篇文章我们分析Weex的渲染流程,来看一看我们写的Js文件是如何在Native端变成Android里View的。...2、Weex渲染过程 2.1 渲染触发点 在Activity中我们开个某个Weex页面使用的是WXSDKInstance中的render方法,最终也是按照常规套路通过WXBridge调用Js继续处理。...备注:Js引擎处理后回调Native这一部分要复杂的多,我们拆分成几步来看。...,因为我们虽然写的是Js代码但是实际显示的确是Native控件; 那么Weex比原生多的流程就是:与V8的交互、关于Dom的解析与生成、设置属性与赋值(扩展)等; 5、总结 Weex渲染流程的分析难度比...; 在Weex渲染流程的分析中我们第一次接触到了Weex中的线程切换,之后会细说; 建议大家都实际跟踪下Weex的源码,里面有很多可以学习的细节; 欢迎持续关注Weex源码分析项目:Weex-Analysis-Project
常用的几个网址 官方 所有组件 插件市场 Weex Ui 安装运行 weex-toolkit 是官方提供的一个脚手架命令行工具,你可以使用它进行 Weex 项目的创建,调试以及打包等功能。...npm install weex-toolkit -g --registry=https://registry.npm.taobao.org 创建项目 weex create demo001 进入项目...cd demo001 运行项目 npm run web iOS端 使用 下载源代码 git clone https://github.com/apache/incubator-weex.git incubator-weex...–>ios–>sdk–>WeexSDK 目录放到项目里 incubator-weex–>pre-build–>native-bundle-main.js文件放到项目里 这里之所以不用pod引用 是因为WXStorageModule...print("渲染完成") } self.weexUrl = Bundle.main.url(forResource: "index", withExtension: "js
本文作者:IMWeb 黄龙 原文出处:IMWeb社区 未经同意,禁止转载 第一个问题: weex是啥?...我也不知道,但是我是在 https://github.com/Laisly/weex 这里找到了这个,其实可以先不用管,不用下载这个也可以。后续当作weex的例子来看倒是挺好的。...第二步:安装 weex-toolkit npm install -g weex-toolkit 第三步:跑起来 新建一个文件比如 hello.we <text...weex hello.we 打开weex Playground App 扫码。这时可能会出现两种情况 一种情况是成功: ? 不要扫这个二维码,扫了也没用 另一种情况是报错: ?...不要急,进入错误指示的位置union库的response-stream.js的第88行,添加代码,就OK了 if (method === 'setHeader') { arguments[1]
第一个问题: weex是啥?...我也不知道,但是我是在 https://github.com/Laisly/weex 这里找到了这个,其实可以先不用管,不用下载这个也可以。后续当作weex的例子来看倒是挺好的。...第二步:安装 weex-toolkit npm install -g weex-toolkit 第三步:跑起来 新建一个文件比如 hello.we <text...weex hello.we 打开weex Playground App 扫码。这时可能会出现两种情况 一种情况是成功: ? 不要扫这个二维码,扫了也没用 另一种情况是报错: ?...不要急,进入错误指示的位置union库的response-stream.js的第88行,添加代码,就OK了 if (method === 'setHeader') { arguments[1]
3、So的加载 So的成功加载对Weex的运行至关重要,毕竟Weex需要V8引擎执行Js与Native的交互,源码中也可以看出So没有加载成功则Weex的各个模块不会执行。...的线程模型: JSBridge在WeexJSBridgeThread负责JS与Native的通信; 切换具体的Dom指令到WeeXDomThread负责关于Dom的各项如:解析、Rebuild Dom...但是有一个细节问题前面没有说到,就是JS与Native交互的方法签名,参数类型只能是String吗?...方法,然后走到WxBridgeManager.callNative方法,会发现函数体内有一行: JSONArray array = JSON.parseArray(tasks); 由此可以断定JS...我们再来总结下Weex是如何实现不同方法签名的交互的: Module注册阶段保存下来Method; JS发送指令调用Module方法传递的原始参数是Json格式; 真正反射调用方法的时候从Method中拿到参数的具体类型
2、反射获取方法 大家知道对于Weex来说,JS引擎与Native的交互本质上就是方法的调用,最终调用的时候必然是反射无疑,但是方法的获取也是反射这一点存在很大优化空间。...先回忆下我们使用Module组件的方法: 继承WXModule; 编写函数体; 给函数体打上注解@JSMethod; 而这些被打上注解的函数则可以拿来与Js进行交互,我们回忆下Module注册的代码,分别有...Native的注册和Js的注册,注册有一步是获取Module组件中打上注解的方法: @Override public String[] getMethods() { if (mMethodMap...这里提供两条解决途径供参考: 对Weex进行异步初始化,绝大多数应用使用Weex不会是整个App都由Weex完成,那么只要能保证Weex的初始化在使用之前完成即可;这点很容易做到毕竟App都有闪屏的时间可以利用...不过这条属于苛责,之前也总结过对于Weex来说我们实际上只需要保存其Js引擎与Native的交互能力即可,别的都属于Weex为了吸引开发者而做的简略能力。
而weex-hacknews则是weex官方出品的,首个使用 Weex 和 Vue 开发的 Hacker News 原生应用,在项目中使用了 Vuex 和 vue-router等官方组件。...本文会分析weex-hacknews的代码,学习如何使用weex进行开发,本文是第二部分,第一部分见(http://www.cnblogs.com/xiaoqi/p/weex-hackernews-code-part1...几个关键点如下: 7.1 组件通过props属性传递数据 Vues.js可以使用 props 把数据传给子组件,prop 是父组件用来传递数据的一个自定义属性,子组件需要显式地用 props 选项声明...我们再来看router.js里的createStoriesView方法,是否恍然大悟? ?...$store访问vuex 通过名为stories的computed计算属性访问数据 在created(vue.js生命周期,可理解为jq的ready)时,调用fetchListData,实则是调用FETCH_LIST_DATA
本篇内容: Weex的项目结构 npm webpack ESLint Devtools 一、Weex的项目结构 通过weex init WeexDemo创建一个WeexDemo...#web端使用这个文件 │ └──app.weex.js #native使用这个文件 ├──node_modules...下图是创建weex时默认生成的package.json: ?...EsLint能够帮助我们分析JS代码,找到bug并确保一定程度的JS语法书写的正确性。...五、Devtools Weex 开发了一套 Weex Devtools,它与 Chrome Devtools 极为相似,学习成本很低,目前只支持在 Chrome 浏览器里使用。
我是按照http://alibaba.github.io/weex/doc/demo/modal.html 这个网址的内容进行weex学习的,这只是笔记。...Weex由, : required....Just uses HTML syntax and describes the structure of a Weex page, which is build upon several tags.... module.exports = { data: { title: { size: 48, value: 'Alibaba Weex... Hello Weex!
工程 1、创建weex工程 weex init WeexImageDemo 2、拷贝图片到Weex工程中,Demo放在了....添加后的代码为: loaders: [ { test: /\.js$/, loader: 'babel', exclude:..." } 环境配置完成,下一步就是在Weex中使用,为了方便各个页面调用,将调用方式抽取出来,命名为config.js。...5、在config.js定义加载Weex工程图片方法 const SERVER = "YOUR SERVER IP"; module.exports = { // 加载工程中的image...// 加载服务器上的image image(imgURL) { return SERVER + imgURL; } } 6、在foo的script导入config.js
首先要吐槽下,同为混合开发框架,React Native的技术社区完善不知道甩了weex几条街,但还是希望自己的经验能为weex开发者带来一些帮助 weex 集成过程在官网已经有比较详细的介绍(官网链接...在项目工程路径下执行 weex run ios 命令后,发现没有 iPad 相关的模拟器,只有 iPhone 相关机型的。总不能和领导说,weex 不支持 iPad 端模拟器调试?...想了想,既然 weex 调用的是 Xcode 中的模拟器,那么肯定会获取到 Xcode 中模拟器列表。如果强行给 weex 调用一个不存在的模拟器会发生什么?...带着疑问,去尝试调了下,weex 果然报了错,而且给出了下面的 weex 内部文件报错路径 ~/.xtoolkit/node_modules/weexpack/lib/utils/index.js 猜测这个可能就是控制调试...weex提示找不到Device 这时,需要重启Mac,然后在 Xcode 中手动添加模拟器。添加完成后,再次运行 weex 命令,即可正常调用模拟器 ? Xcode手动添加模拟器
领取专属 10元无门槛券
手把手带您无忧上云