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


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

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



相关文章
|
10天前
|
数据可视化 JavaScript 前端开发
数据可视化进阶:D3.js在复杂数据可视化中的应用
【10月更文挑战第26天】数据可视化是将数据以图形、图表等形式呈现的过程,帮助我们理解数据和揭示趋势。D3.js(Data-Driven Documents)是一个基于JavaScript的库,使用HTML、SVG和CSS创建动态、交互式的数据可视化。它通过数据驱动文档的方式,将数据与DOM元素关联,提供高度的灵活性和定制性,适用于复杂数据的可视化任务。 示例代码展示了如何使用D3.js创建一个简单的柱状图,展示了其基本用法。D3.js的链式调用和回调函数机制使代码简洁易懂,支持复杂的布局和交互逻辑。
33 3
|
14天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
17 4
|
13天前
|
JavaScript 搜索推荐 前端开发
Vue SSR 预渲染的广泛应用场景及其优势
【10月更文挑战第23天】Vue SSR 预渲染技术在众多领域都有着广泛的应用价值,可以显著提升网站的性能、用户体验和搜索引擎优化效果。随着技术的不断发展和完善,其应用场景还将不断拓展和深化
29 2
|
15天前
|
JavaScript 前端开发 开发者
探索JavaScript原型链:深入理解与实战应用
【10月更文挑战第21天】探索JavaScript原型链:深入理解与实战应用
25 1
|
24天前
|
JavaScript 前端开发 开发者
Vue v-for 进阶指南:in 与 of 的区别及应用场景 | 笔记
Vue.js 中的 v-for 是强大的遍历指令,但其中的 in 和 of 关键字往往被开发者忽视。尽管它们的用法相似,但适用的场景和数据结构却各有不同。本文将详细探讨 v-for 中 in 和 of 的区别、适用场景以及在实际开发中的最佳使用时机。通过理解它们的差异,你将能够编写更加高效、简洁的 Vue.js 代码,灵活应对各种数据结构的遍历需求。
82 6
|
24天前
|
开发者
鸿蒙Flutter实战:07-混合开发
鸿蒙Flutter混合开发支持两种模式:1) 基于har包,便于主项目开发者无需关心Flutter细节,但不支持热重载;2) 基于源码依赖,利于代码维护与热重载,需配置Flutter环境。项目结构包括AppScope、flutter_module等目录,适用于不同开发需求。
65 3
|
7天前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
18 0
|
9天前
|
传感器 开发框架 物联网
鸿蒙next选择 Flutter 开发跨平台应用的原因
鸿蒙(HarmonyOS)是华为推出的一款旨在实现多设备无缝连接的操作系统。为了实现这一目标,鸿蒙选择了 Flutter 作为主要的跨平台应用开发框架。Flutter 的跨平台能力、高性能、丰富的生态支持和与鸿蒙系统的良好兼容性,使其成为理想的选择。通过 Flutter,开发者可以高效地构建和部署多平台应用,推动鸿蒙生态的快速发展。
104 0
|
11天前
|
Dart 安全 UED
Flutter&鸿蒙next中的表单封装:提升开发效率与用户体验
在移动应用开发中,表单是用户与应用交互的重要界面。本文介绍了如何在Flutter中封装表单,以提升开发效率和用户体验。通过代码复用、集中管理和一致性的优势,封装表单组件可以简化开发流程。文章详细讲解了Flutter表单的基础、封装方法和表单验证技巧,帮助开发者构建健壮且用户友好的应用。
55 0
|
14天前
|
缓存 JavaScript 数据管理
优化 Vue 应用中的性能
【10月更文挑战第22天】优化 Vue 应用性能需要综合考虑多个方面,从数据管理、组件化、虚拟 DOM 操作、网络请求、代码结构等多方面入手,不断进行优化和改进,以提供更流畅的用户体验。同时,要根据具体的应用场景和需求,选择合适的优化策略,确保性能优化的效果和可行性。
下一篇
无影云桌面