html5 app 原理,html5打包成app应用的原理是什么?

dec158a2903d62bfed2981a4046e9f71.png

慕侠2389804

NativeScript我用过,其他听过但是没用过,但我觉的原理应该差不多,简单给你说说ns的原理。如果你使用过ns的话,你会发现其实和开发Angularwebapp基本没什么区别,无非是很多空间组件变成了ns提供的那些。在Angular中有一个叫做platform的概念,大体的架构思想是这样的,就是你在写Component的时候,这实际是一个高度抽象的概念,它已与组件所具体渲染的环境(platform)解耦,同一个Component在不同的platform下的渲染逻辑和编译逻辑不相同,但表现形式相同,举例来说:通常开发web程序,使用的都是platform-browser,它会将组件编译为浏览器识别的css、js、html等文件github上有一些项目提供了platform-canvas,它会将组件编译为在某个canvas元素上渲染的脚本之前我看过一篇文章,文章中实现了platform-momery,大体的功能就是将Angular组件编译为了只在内存中渲染并运行的platform因此,对于ns来说,它就是要实现这么一个platform,算是一座桥,入口端是Angular组件,出口端是不同类型的移动端代码,要了解中间这种转换和编译的过程,需要学习一些编译原理的知识,最起码要明白AST这个概念,这个概念其实在各种js的编译工具中,经常被提起,比如babel、webpack等等。同理的,对于react-native、weex等,肯定内部原理都是这样的,就是要实现这么一座桥,将react或者vue与移动端的代码连接起来。当然,这只是其中的一种实现方案,还有类似使用webview来实现的,这个我接触的不多,就不说了,好像ionic就是这种套路。总之最终的结果就是,只通过js写逻辑,对于渲染逻辑的话,交给库来实现。我觉的要想查阅相关资料,直接学习其中的某个库就好了,或者看看编译原理。如有错误,还望指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值