第158期移动Web技术的春天来了

周末了就不发技术文~~今天早读君推荐这篇是新闻很振奋人心的,JS要一统江湖了~哈哈。。早先的node.js,现在又要涉足nativeApp开发~~~前端的价值越来越明显了~

几个小时前,React.jsConf会议上,Facebook发布了ReactNative,可以基于目前大热的开源JavaScript库React.js来开发iOS和Android原生App。而且ReactNative已经用于生产环境——FacebookGroupsiOS应用就是基于它开发的。Facebook也已确认,这个项目很快将会开源。

根据ProgVille的文章,ReactNative的原理是,在JavaScript中用React抽象操作系统原生的UI组件,代替DOM元素来渲染,比如以View取代div,以Image替代img等。

在幕后,ReactNative在主线程之外,在另一个背景线程里运行JavaScript引擎,两个线程之间通过一批量化的async消息协议来通信(有一个专门的React插件)。

UI方面ReactNative提供跨平台的类似Flexbox的布局系统,还支持CSS子集。可以用JSX或者普通JavaScript语言,还有CoffeeScript和TypeScript来开发。有评论说,React的UI层模型要比UIKit好很多。

更好的是,由于基于Web技术,开发起来可以像在浏览器里那样随时在仿真程序中查看应用运行情况,刷新一下就行,无需编译,爽吧。

我是Jordan我在React团队(也是ReactNative团队).这个线索已经有一些很棒的问题和看法了.

ReactNative围绕着生产力(当然还有能够使用React这套放弃)提供了大量的方便,不过因为有很多关于性能的问题,我想我还是分享一些我个人关于它的看法.

ReactNative和其他的方案区别很大,由于:

我们并不是希望给你一个神奇的戏法能让在你不改变任何的开发哲学/习惯的情况下就能自动生成出很棒的移动应用体验.

如果你在做移动开发,你想要很棒的用户体验.你必需是要关心性能,必须关心怎么编写精细的交互.

任何优秀的移动端体验后面,都需要很专心的人.不要相信别的说法.

不过,我感到相比而言要达到那样有些的效果,ReactNative要求开发开发者做的工作,比其他我见过的备选方案要做的工作要少得多.

ReactNative完全不用DOM.React原本用来解决浏览器开发中出现的,不可预测的编程实践当中常见的性能问题,但是也仅仅能帮你做那么多而已.ReactNative提升了一个层次,不止于浏览器所能做的.ReactNative展示的ReactJS总是更多地偏向于zeroDOM而不是virtualDOM(跟大家以为的相反).

ReactNative也很特别,因为我们想要继承一些Web开发当中好的地方.这是因为我们只是想要性能,想要NativeView的资源的控制能力,而不是要抛弃Web开发优秀的内容.

在ReactNative当中,你可是使用CSSFlexbox对NativeView进行布局,同时有很多很熟悉的样式属性,但是不会有泛滥的CSSstylereflow.事件系统也跟现在React应用当中的一致,因为类库的代码是一样的.按照Web开发中让我们高效开发的样式/布局的子集来构建应用,那样开发者就能在当下就构建优秀的Web应用,而不是把时间排到未来.

我认为真的,相比鼓励开发者抛弃任何哪怕有点像Web技术的东西然后学一门完全不同的工具链(甚至两门三门),这样要好得多.

ReactNative特殊的地方还在于它可以用JavaScript来写高质量的应用.在浏览器当中,你很可能要对付一些低层级的限制,然后你没有办法.或者是不能访问平台上的控件(在scrollview当中包含physics/Maps),或者是你在实现当中总是被图片解码干扰,没什么办法.

用ReactNative的话,你可以有一些办法了.你可以在ReactJS应用当中使用那些永远不会用JS来实现的view(比如地图),而且你的构建当中可以用一些更高的执行粒度的block,(多线程解码的Image/)(不使用DOM的Viewblock)结果是这带来了质量方面到了空前的层次的感觉,而且对应平台的特征.

赞赏

长按







































白癜风治疗要花多少钱
哪里可以治好白癜风



转载请注明:http://www.guyukameng.com/http/8605.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了