小程序原理及RN与Flutter的对比

小程序
小程序的底层原理

小程序的呈现模式是 WebView + 原生组件,Hybrid 方式
在这里插入图片描述双线程原理

双线程模式是小程序的最大特点

小程序的渲染层和逻辑层分别由 2 个线程管理:渲染层的界面使用了 WebView 进行渲染,逻辑层采用 JsCore 线程运行 JS 脚本。

逻辑层: 创建一个单独的线程去执行 JavaScript,在这个环境下执行的都是有关小程序业务逻辑的代码
渲染层: 界面渲染相关的任务全都在 WebView 线程里执行,通过逻辑层代码去控制渲染哪些界面。一个小程序存在多个界面,所以渲染层存在多个 WebView 线程

微信小程序的底层原理

微信小程序采用 JavaScript、WXML、WXSS 三种技术进行开发,本质就是一个单页面应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口
微信的架构,是数据驱动的架构模式,它的 UI 和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现
小程序分为两个部分 webview和 appService 。其中 webview 主要用来展现UI ,appService 有来处理业务逻辑、数据及接口调用。它们在两个进程中运行,通过系统层 JSBridge 实现通信,实现 UI 的渲染、事件的处理

在某种程度上,它也限制了开发者的权限:

• 不允许开发者把页面跳转到其他在线网页
• 不允许开发者直接访问DOM
• 不允许开发者随意使用window上的某些未知的可能有危险的API
小程序跨平台互转的原理

抹平多端语法差异
实现多端之间投放,码路由
小程序生命周期函在这里插入图片描述
微信小程序生命周期
小程序 & H5 & App
在这里插入图片描述小程序是类Vue的开发,但是还是和Vue有着很大的区别:

生命周期(小程序的生命周期更简单)
数据绑定的方式(小程序, vue则是:value)
事件处理方式 (小程序全用 bindtap(bind+event),或者 catchtap(catch+event)绑定事件, vue:使用v-on:event 绑定事件,或者使用@event绑定事件)
控制元素的显示和隐藏(小程序wx-if和hidden,vue则是v-if和v-show)

React Native & Flutter

React-native的框架原型图

在这里插入图片描述
Flutter的框架原型图
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
rnflutter都是目前非常流行的移动应用开发框架。 React Native(RN)是Facebook推出的一种开源框架,它运用了Facebook自家的React框架,能够基于JavaScript创建原生的移动应用。RN的优势在于它可以使用一套代码同时在iOS和Android平台上运行,大大减少了开发者的工作量。此外,RN还提供了丰富的组件库和强大的社区支持,使开发者能够快速搭建漂亮、高效的移动应用。 相较之下,Flutter是Google推出的开源框架,它使用Dart语言进行开发。Flutter通过自定义的渲染引擎绘制UI,可以创建高性能且美观的跨平台移动应用。Flutter具有热重载功能,使开发过程更加迅速和便捷。同时,Flutter提供了丰富的组件库和通用的API,使开发者能够轻松创建各种复杂的用户界面。 然而,RNFlutter也存在一些不同之处。RN使用JavaScript进行开发,而Flutter使用Dart语言,这意味着开发者需要学习不同的编程语言。另外,RN采用的是原生组件的渲染方式,而Flutter则是通过自定义渲染引擎进行绘制。这一差异导致Flutter在性能和用户体验方面更具优势,但对于复杂界面和特定平台功能的需求,RN可能更加灵活。 综上所述,RNFlutter都是优秀的移动应用开发框架,具有各自的优点和适用场景。开发者可以根据项目需求、个人技能和团队资源来选择适合的框架。无论选择哪个,都能够高效地开发出高质量的移动应用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值