2019-2021 美团技术年货 前端篇(Web)的强大能力,实现逻辑的抽象,完成组 件、模块的适配,达到提效最大化; ● 跟进 Flutter 官方动向:Flutter 2.0 的发布,稳定了对 Web 的支持,同时默 认采用 Canvaskit 编译模式,此模式下对页面滚动性能有较大提升。但由于 canvaskit.wasm 文件过于庞大(2.5M),降低了加载性能,因此目前仍不建 议在 Web 侧直接使用 Canvaskit。不过官方承诺会在 2021 Widgets、 Gestures 等组件来实现逻辑跨端。而关于渲染跨端,FlutterWeb 提供了两种模式 来对齐 Engine 层的渲染能力:Canvaskit Render 和 HTML Render,下方表格对 两者的区别进行了对比: 图 3 模式对比 Canvaskit Render 模式:底层基于 Skia 的 WebAssembly 版本,而上层使 用 WebGL 进行渲染,因此 Canvaskit Render 模式 用于桌面应用)。 HTML Render 模式:利用 HTML + Canvas 对齐了 Engine 层的渲染能力,因此 兼容性表现优秀。另外,MTFlutterWeb 对滚动性能已有过探索和实践,目前能够 应对大部分业务场景。而关于加载性能,此模式下的初始包为 1.2M,是 Canvaskit Render 模式产物体积的 1/2,且我们可对编译流程进行干预,控制输出产物,因此0 码力 | 738 页 | 50.29 MB | 1 年前3
Vue.js v3.0 教程(Vue3 教程)的新功能可以参阅迁移指南! Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的 是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第 三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库 (opens new window) 结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的 顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们 在每个索引位置正确渲染。 这个默认的模式是高效的,但是只适用于不依赖子组件状态或临时 DOM 状态 (例如:表单输入值) 的 列表渲染输出。 为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项 prevent="doThat"> 9. 10. 11. 12. 13. 14. 15....16.0 码力 | 368 页 | 3.97 MB | 1 年前3
基于AngularJS的企业应⽤前端架构基于AngularJS的企业应⽤用前端架构 徐飞 新浪微博:@民⼯工精髓V 企业应⽤用前端的特点 • 独占模式 • 重业务,轻视觉 • 界⾯面规整,模式单⼀一 • 键盘操作 • 逻辑复杂 • 加载速度的侧重不同 • 浏览器版本相对宽松 传统的B/S企业应⽤用前端 • B/S企业软件常⽤用的展现层技术 – HTC 在浏览器端扩展标签 前端逻辑有⼀一定规模,分层有利协作 – 便于保证数据的⼀一致性 – 业务逻辑的复⽤用 – 每个层次的单独可测试 • Struts这种服务端MVC的弱点在哪⾥里? – 拉长了视图层的⽣生成和渲染 – 不利于UI⼈人员协作 ⾃自定义标签 • 在创建界⾯面时,声明式代码是有优势的。 • HTML的标签集是⽐比较贫乏的。 • 服务端⾃自定义标签的劣势0 码力 | 13 页 | 517.57 KB | 1 年前3
TypeScript Handbook(中文版)
理想情况下,我们只需要在浏览器里引入React模块,但是大部分浏览器还没有支 持模块。 因此大部分代码库会把自己包裹在一个单独的全局变量内,比 如: jQuery 或 _ 。 这叫做“命名空间”模式,webpack也允许我们继续使用通过 这种方式写的代码库。 通过我们的设置 "react": "React" ,webpack会神奇地 将所有对 "react" 的导入转换成从 React ,它会发布一条明确 的action消息,这个消息必须被reducer函数处理。 由于使用了这样明确的方式,很 容易弄清楚一个action是如何影响程序的state。 MobX借助于函数式响应型模式,state被包装在了可观察对象里,并通过props传 递。 通过将state标记为可观察的,即可在所有观察者之间保持state的同步性。 另 一个好处是,这个库已经使用TypeScript实现了。 DECREMENT_ENTHUSIASM = typeof DECREMENT_ENTHUSIASM; TypeScript Handbook(中文版) 79 React 这里的 const / type 模式允许我们以容易访问和重构的方式使用TypeScript的字 符串字面量类型。 接下来,我们创建一些actions以及创建这些actions的函 数, src/actions/index.tsx0 码力 | 557 页 | 7.48 MB | 1 年前3
TypeScript 4.0 使用手册
,它会发布一条明确的action消息,这个消息必须被 reducer函数处理。 由于使用了这样明确的方式,很容易弄清楚一个action是如何影响程序的 state。 MobX借助于函数式响应型模式,state被包装在了可观察对象里,并通过props传递。 通过将state 标记为可观察的,即可在所有观察者之间保持state的同步性。 另一个好处是,这个库已经使用 TypeScript实现了。 'DECREMENT_ENTHUSIASM'; 8. export type DECREMENT_ENTHUSIASM = typeof DECREMENT_ENTHUSIASM; 这里的 const / type 模式允许我们以容易访问和重构的方式使用TypeScript的字符串字面量类 型。 接下来,我们创建一些actions以及创建这些actions的函数, src/actions/index.tsx 。 BookStack.CN 构建 那么你可以这样写: 1. export function feedPets(pets) { 2. // ... 3. } 有时你会完全重写导出对象。 这是一个常见模式,这会将模块变为可立即调用的模块: 1. var express = require("express"); 2. var app = express(); 之前你可以是这样写的: 1. function0 码力 | 683 页 | 6.27 MB | 1 年前3
前端开发者指南(2017)Babel 被广泛采用。这些 解决方案跃居于最常用技术榜单前列。 开发者意识到,在开发原生应用时,借助 webviews 的 H5 混合式移动开发在多数情况下 不具备足够优势。 React Native 和 NativeScript 开始替代 H5 混合式 webview 开发。 大多数人舍弃 Gulp 转而使用 NPM 脚本,但 Gulp 仍受欢迎。 SASS 工具继续受到欢迎,与此同时 编辑器,这成为一种趋势。 jQuery 仍有热度,但使用率和关注度都在下滑。jQuery 3 已然发布 ,却无人问津。 Vue.js 理所应当地吸收更多追随者。 JavaScript 函数式编程和模式备受关注。 离线开发和渐进式 WEB 应用(PWA)步入主流。 微软发力。 基于 web 技术,使用 NW.js 和 Electron 开发 windows,OSX 和 linux 原生应用的方式逐 方案的演化通过 Preact、Deku、Rax 和 inferno 的形式展现,并伴随着 少量 API 改动。 此前大多数人学习接受 JSX,而如今他们已经享受其中。 一种可用的 CSS 模块模式(CSS encapsulation)已经实现并投入使用,因此对许多人 来说,CSS in JS 成为一种切实可行的解决方案。 越来越多人着手进行 UI 的功能性、整合性测试,其中包含例如可视化0 码力 | 164 页 | 6.43 MB | 1 年前3
mpvue小程序开发框架和最佳实践⼩小程序开发姿势各不不相同,mpvue 是如何决策的?制定规则 还是复⽤用规则,mpvue 如何通过最⼩小的代价,打通传统前端 和⼩小程序开发的壁垒? Vue 代码 mpvue 编译器器 视图层代码 逻辑层代码 执⾏行行阶段 编译阶段 View VDom Component WXML WXSS Service mpvue SDK 事件函数 逻辑 Data ⽣生命周期 data 对象实例例 mpvue runtime 实例例间⽣生命周期互通 维护 Vue 对象实例例 mp 触发事件 + Vue 执⾏行行回调函数 Vue 维护数据模型和虚拟 dom ⼩小程序负责视图层渲染 mpvue runtime 实现 事件函数 mp 对象 AppData ⽣生命周期 事件函数 Vue 对象 data ⽣生命周期 事件代理理机制 数据同步机制 ⽣生命周期关联0 码力 | 31 页 | 3.17 MB | 1 年前3
Flutter在腾讯企鹅辅导上的实践之路Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面 Flutter简介 1 原生性能 生态与模式 C/C++ 引擎操作OpenGL、GPU直接渲染 平台一致性 Flutter简介 1 生态与模式 原生性能 实践框架及页面栈管理 2 实践框架及页面栈管理 2 腾讯企鹅辅导 实践框架及页面栈管理 2 腾讯企鹅辅导 实践框架及页面栈管理 基础能力 接口简单易用 方便接入 扩展能力强 终生使用 底层Engine耦合低 实践框架及页面栈管理 2 混合栈管理 Native_0 Flutter_0 Native_1 Flutter_1 Flutter_0 Flutter_2 页面切换 实践框架及页面栈管理 2 混合栈管理 Native Flutter Flutter_2 Flutter_1 Flutter_0 … UrlScheme VC/Activity 实践框架及页面栈管理 2 混合栈管理 - 方案 Native FlutterController FlutterActivity FlutterController FlutterActivity GPU、IO、UI Dart VM 实践框架及页面栈管理 2 混合栈管理 - 方案 Native FlutterController GPU、IO、UI0 码力 | 50 页 | 4.07 MB | 1 年前3
陈新新 Flutter & Dart全栈开发Flutter在闲⻥鱼应⽤用过程 基础调研 Google⽀支持 混合开发 详情⻚页 发布⻚页 更更多业务 内部版本 Alpha Beta Preview1 Preview2 闲⻥鱼 - 让你的闲置游起来 接近Native效果的UI和交互体验 多图列列表 评论盖楼 图⽂文 闲⻥鱼 - 让你的闲置游起来 Native组件 Native和Flutter混合开发 混合栈 闲⻥鱼 - 让你的闲置游起来 视频和动画 视频和动画 视频 动画 闲⻥鱼 - 让你的闲置游起来 关键问题解决 混合开发:⼯工程管理理和混合栈管理理 外接纹理理播放视频 图⽚片缓存优化 ⽆无反射JSON序列列化 私有PUB库、阿⾥里里⽣生态适配 闲⻥鱼 - 让你的闲置游起来 Flutter和Native性能简单⽐比较 Flutter Native 45 FPS 30 FPS 113.2% 184.8% 闲⻥鱼 学习成本 闲⻥鱼 - 让你的闲置游起来 闲⻥鱼 - 让你的闲置游起来 数据模型 Client & Server 前后端⼀一致 视图 Fixed Widget 三端⼀一体化新开发模式 视图 Dynamic Widget 业务逻辑 Client | Server 分拆实现 闲⻥鱼 - 让你的闲置游起来 三端⼀一体化的协议定义 客户端实现 ⽣生成协议 Dart0 码力 | 39 页 | 17.12 MB | 1 年前3
ExtJS和AngularJS比较5 支持 MVC (Model-View-Controller) 和 MVVM (M odel-View-ViewModel) MVW (Model-View-Whatever). 它支持流行的设计模式,比如 Model-Vi ew-Controller(MVC) 和 Model-View-Vie wModel(MVVM) 8. 依赖注入 Ext JS 能够通过扩展( Deft JS)增加依赖注入 要好。这就意味着 ,需要开发独立的移动版应用。 使用ng-touch库、angular-gestures 和 ang ularJS 响应模块实现响应式Web应用, 18. 跨平台的移动应用或者混合应用 使用 Sencha Touch 和 Apache Cordova/Phonegap 集成来 实现 AngularJS使用 Trigger.io, Cordova/Phone gap integration ExtJS 是基于组件的 (表格、树、表单、绘图);代码开始于对现有类的扩展,配置 模型,自定义显示和行为/事件,将这些组件加入到container/layout中。 它遵循面 向对象的设计思想和MVC设计模式,很少直接操作DOM元素 AngularJS,走的是另外的一条路,是一种声明式的程序。在HTML标签上新增An gularJS指令,配置模型,使用模版和路由配置视图;框架最终实现了DOM的创建 。0 码力 | 6 页 | 244.12 KB | 1 年前3
共 50 条
- 1
- 2
- 3
- 4
- 5













