VueConf2021话题,用Vue和JS开发Flutter应用?

简介: 本篇主要围绕Vue构建高性能 Flutter 应用话题展开

在当下,跨端已经是前端绕不开的一个话题,随着 IoT 设备的普及越来越多的“端”涌现到我们的日常开发中。自 Hybrid 、React Native(Weex)后,Flutter 凭借其精简的渲染管线以及自绘渲染的特性,一跃成为这两年跨端的新宠。


但其用 Dart + Widget 的开发模式以及与前端割裂的生态造成了研发成本过高。基于这个背景,我们探索一种基于 W3C 标准的 Flutter 应用方案,向上对接前端生态,向下通过自绘保证多端一致性。


image.png


以上是本次VueConf2021中,由阿里巴巴淘系技术部染陌带来的分享。不过在他的分享的前半部分,几乎都在讲述跨端的历史,以及Flutter之所以出现并流行的原因。像是一个用于阿里内部的报告:p ,不过他的分享后,更有VueConf2021全场最佳绿哥的灵魂拷问:


Weex已经黄了,你这个能坚持维护多久?


开个玩笑,有些小伙伴还不了解Flutter,我分享一下我对于Flutter的理解


Flutter究竟好在哪?


  1. 跨端一致性
  2. 跨端一致性
  3. 跨端一致性


这里真不是跟大家开玩笑,Flutter当然还有一些其他的优点,但在我看来,那些优点和跨端一致性相比都不足一提。或者说,跨端一致性是Flutter能在跨端框架圈能立住脚的核心原因之一,正因为这个非常sexy的特性,开发者们愿意去适应和接受Flutter框架的“固执”...


Flutter的固执?


我并不了解Flutter为何固执的设计成今天这个样子,它并不难学,但是对于一个已经习惯了Web前端开发习惯和生态的开发者而言,要去适应另一套风格和习惯自然是有不小的成本。


另外,Web前端工程师的生存环境越来越艰难!内卷成灾:p


即使掌握了Flutter,却往往不能一直写Flutter,要时常在Dart/JS

Flutter/Vue之间来回横跳,这就相当难受了。


比如笔者就是如此,所以经常大脑缺氧,记忆错乱...


举几个例子大家感受下


  • 异步函数


//javascript
async function func(){
}
//dart
func() async{
}


  • 随机值


//javascript
Math.random();
Math.floor(Math.random()*5);
//dart
Random().nextDouble();
Random().nextInt(5);


  • 日志打印


//javascript
console.log();
//dart
print();


  • 数组


//javascript
var arr = [];
arr.push(1);
arr.push(1,2,3,4,5);
//dart
var arr = [];
arr.add(1);
arr.addAll([1,2,3,4,5]);


这种差异我仅列举冰山一角,你如果日常要在这两种习惯间反复横跳,会不会疯?


所以,既利用Flutter的跨端一致性,但又可以用沿用Web前端开发者们习惯来编写代码,完成开发多好呢?kraken就在这个背景下诞生


Kraken是个啥


Open Kraken(openkraken.com/)


阿里巴巴历时 3 年自研开发的 Web 渲染引擎 北海(英文名:Kraken)正式开源,致力打造易扩展,跨平台,高性能的渲染引擎,并已在优酷、大麦、天猫等业务场景中使用。


所以kraken到底能干嘛,大家可以去看官网,我的理解是


Weex = JS+Vue+原生渲染


Kraken = JS+Vue/React/Rax+Flutter自渲染

而Flutter脱胎于web标准,是chrome团队去掉一些乱七八糟的web规范后...


image.png


所以我可不可以理解为,Kraken把那些乱七八糟的web规范整回来了~


也就是说,Kraken = 用Flutter实现了一个Webkit,这个理解,我特意向Flutter中国的朋友请教了一下...


image.png


一篇观后感的水文,没什么干货...

评论区畅所欲言吧~大家怎么看?



相关文章
|
8天前
|
JavaScript 前端开发 API
详解队列在前端的应用,深剖JS中的事件循环Eventloop,再了解微任务和宏任务
该文章详细讲解了队列数据结构在前端开发中的应用,并深入探讨了JavaScript的事件循环机制,区分了宏任务和微任务的执行顺序及其对前端性能的影响。
|
4天前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
22 7
|
9天前
|
JavaScript 开发者
深入理解Node.js事件循环及其在后端开发中的应用
【8月更文挑战第57天】本文将带你走进Node.js的事件循环机制,通过浅显易懂的语言和实例代码,揭示其背后的工作原理。我们将一起探索如何高效利用事件循环进行异步编程,提升后端应用的性能和响应速度。无论你是Node.js新手还是有一定经验的开发者,这篇文章都能给你带来新的启发和思考。
|
8天前
|
自然语言处理 JavaScript 前端开发
JS中this的应用场景,再了解下apply、call和bind!
该文章深入探讨了JavaScript中`this`关键字的多种应用场景,并详细解释了`apply`、`call`和`bind`这三个函数方法的使用技巧和差异。
|
14天前
|
自然语言处理 前端开发 JavaScript
探索JavaScript中的闭包及其实际应用
本文深入探讨了JavaScript中闭包的概念、特性及其在实际项目中的应用。通过具体示例,详细讲解了闭包的创建方法和用途,揭示了闭包在数据保护和模块化开发中的重要性。同时,还讨论了闭包可能带来的内存管理问题及优化策略,为前端开发者提供了全面的闭包知识和实践指导。
|
23天前
|
JSON Dart Java
flutter开发多端平台应用的探索
flutter开发多端平台应用的探索
27 6
|
23天前
|
JSON Dart Java
flutter开发多端平台应用的探索 下 (跨模块、跨语言通信之平台通道)
flutter开发多端平台应用的探索 下 (跨模块、跨语言通信之平台通道)
|
8天前
|
JavaScript 前端开发 开发者
深入浅出 Vue.js:构建响应式前端应用
Vue.js 是一个流行的前端框架,以其简洁、高效和易学著称。它采用响应式和组件化设计,简化了交互式用户界面的构建。本文详细介绍 Vue.js 的核心概念、基本用法及如何构建响应式前端应用,包括实例、模板、响应式数据和组件等关键要素,并介绍了项目结构、Vue CLI、路由管理和状态管理等内容,帮助开发者高效地开发现代化前端应用。
|
XML 存储 缓存
如何让 Flutter 应用更好地使用 SVG?
SVG 作为一个强大的矢量图标准格式,在图片清晰度的表现力上有着位图无法比拟的优势。那么是否 SVG 就是绝对的首选了呢?事实可能并非如此。本文将带大家了解 SVG 在 Flutter 应用中的性能问题,分享 UC 浏览器内核技术团队在 Flutter 应用中改进 SVG 应用的探索实践。
3334 0
如何让 Flutter 应用更好地使用 SVG?
|
4月前
|
开发框架 前端开发 测试技术
Flutter开发常见问题解答
Flutter开发常见问题解答
下一篇
无影云桌面