2019-2021 美团技术年货 前端篇
分实现细节的介绍,分享我们在移植和开发过程中的一些经验。希望能对大家有所启 发或者帮助。 背景知识和基础概念介绍 在适配开始之前,我们要明确好先做哪些事情。先来回顾一下 Flutter 的三层结构: 在 Flutter 的架构设计中,最上层为框架层,使用 Dart 语言开发,面向 Flutter 业务 的开发者;中间层为引擎层,使用 C/C++ 开发,实现了 Flutter 的渲染管线和 Flutter 暴露给我们的命令只有一 个 flutter build web,导致我们无法直接进行更细粒度的个性化定制。如果想 要让 Flutter Web 达到企业级应用的标准,我们需要更深层次的探索 Flutter SDK 的 运行原理。下面我们列出目前遇到的性能问题及其解决方案。 4.2.1 目前存在的性能问题 Google 官方对 Flutter Web 性能优化所做的事项还比较少,编译输出的页面存在较 Sketch 数据源中并没有这些组件只有图层信息,图层是设计师在设计 UI 视图时 用到的视图控件。组件与图层的对应关系是一对多的关系,图层在 Sketch 数据源中 的表现形式如下图中的 JSON 数据结构所示,描述了图层的坐标、大小等信息,后 续布局生成就是基于对图层的切割来实现的。 [ { "class_name":"MSTextLayer", "fon0 码力 | 738 页 | 50.29 MB | 1 年前3Vue.js v3.0 教程(Vue3 教程)
createApp(ConditionalRendering).mount('#conditional-rendering') 这个例子演示了我们不仅可以把数据绑定到 DOM 文本或 attribute,还可以绑定到 DOM 的结构。 此外,Vue 也提供一个强大的过渡效果系统,可以在 Vue 插入/更新/移除元素时自动应用过渡效 果。 你可以在下面的沙盒中将 seen 从 true 更改为 false ,以检查效果: 通常,当我们需要将数据从父组件传递到子组件时,我们使用 props。想象一下这样的结构:你有一 些深嵌套的组件,而你只需要来自深嵌套子组件中父组件的某些内容。在这种情况下,你仍然需要将 prop 传递到整个组件链中,这可能会很烦人。 对于这种情况,我们可以使用 provide 和 inject 对。父组件可以作为其所有子组件的依赖 项提供程序,而不管组件层次结构有多深。这个特性有两个部分:父组件有一个 provide provide 选项来 提供数据,子组件有一个 inject 选项来开始使用这个数据。 例如,如果我们有这样的层次结构: 1. Root 2. └─ TodoList 3. ├─ TodoItem 4. └─ TodoListFooter 5. ├─ ClearTodosButton 6. └─ TodoListStatistics 提供 / 注入0 码力 | 368 页 | 3.97 MB | 1 年前3TypeScript Handbook(中文版)
Iterators 和 Generators 模块 命名空间 命名空间和模块 模块解析 声明合并 书写.d.ts文件 JSX Decorators 混入 三斜线指令 如何书写声明文件 结构 规范 举例 深入 发布 使用 工程配置 tsconfig.json NPM包的类型 TypeScript Handbook(中文版) 2 5.3 5.4 5.5 5.6 Iterators 和 Generators 模块 命名空间 命名空间和模块 模块解析 声明合并 书写.d.ts文件 JSX Decorators 混入 三斜线指令 如何书写声明文件 结构 TypeScript Handbook(中文版) 5 介绍 规范 举例 深入 发布 使用 工程配置 tsconfig.json NPM包的类型 编译选项 在MSBuild里使用编译选项 类似地,尝试删除 greeter 调用的所有参数。 TypeScript会告诉你使用了非期望 个数的参数调用了这个函数。 在这两种情况中,TypeScript提供了静态的代码分 析,它可以分析代码结构和提供的类型注解。 TypeScript Handbook(中文版) 10 5分钟了解TypeScript 要注意的是尽管有错误, greeter.js 文件还是被创建了。 就算你的代码里有错0 码力 | 557 页 | 7.48 MB | 1 年前3廖雪峰JavaScript教程
5 AJAX 6.6 Promise 6.7 Canvas 7 jQuery 7.1 选择器 7.1.1 层级选择器 7.1.2 查找和过滤 7.2 操作DOM 7.2.1 修改DOM结构 7.3 事件 7.4 动画 7.5 扩展 8 underscore 8.1 Collections 8.2 Arrays 8.3 Functions 8.4 Objects 8.5 注意花括号 {…} 内的语句具有缩进,通常是4个空格。缩进不是JavaScript语法要求必须的,但缩 进有助于我们理解代码的层次,所以编写代码时要遵守缩进规则。很多文本编辑器具有“自动缩进”的功 能,可以帮助整理代码。 {…} 还可以嵌套,形成层级结构: 基本语法 语法 2.1 基本语法 - 13 - 本文档使用 书栈(BookStack.CN) 构建 1. if (2 > - 本文档使用 书栈(BookStack.CN) 构建 2.8 Map和Set JavaScript的默认对象表示方式 {} 可以视为其他语言中的 Map 或 Dictionary 的数据结构, 即一组键值对。 但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为 键也是非常合理的。 为了解决这个问题,最新的ES6规范引入了新的数据类型0 码力 | 264 页 | 2.81 MB | 10 月前3JavaScript Promise迷你书(中文版)
Promise 迷你书(中文版) 35 • 直接使用 JSON.parse 函数的话可能会抛出异常,所以这里使用了一个包装函数 jsonParse • 如果将多个XHR处理进行嵌套调用的话层次会比较深,所以使用了 allRequest 函 数并在其中对request进行调用。 • 回调函数采用了 callback(error,value) 这种写法,第一个参数表示错误信息,第二 个参数为返回值 value){ jsonParse(callback, error, value); } 在这段回调风格的代码中,我们也能发现如下一些问题。 • 需要显示进行异常处理 • 为了不让嵌套层次太深,需要一个对request进行处理的函数 • 到处都是回调函数 下面我们再来看看如何使用 Promise#then 来完成同样的工作。 使用Promise#then同时处理多个异步请求 assert(value === 'value'); }); }); JavaScript Promise 迷你书(中文版) 56 这和上面的 shouldRejected-test.js 结构基本相同,只不过返回对象的 catch 方法变为了 then ,promise.then的两个参数也调换了。 小结 在本小节我们学习了如何编写针对Promise特定状态的测试代码,以及如何使用便于测0 码力 | 112 页 | 1010.02 KB | 1 年前3TypeScript 4.0 使用手册
Decorators 混入 三斜线指令 JavaScript文件里的类型检查 - 2 - 本文档使用 书栈网 · BookStack.CN 构建 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 混入 三斜线指令 JavaScript文件里的类型检查 实用工具类型 如何书写声明文件 介绍 目录 README - 8 - 本文档使用 书栈网 · BookStack.CN 构建 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合 命名空间 命名空间和模块 模块解析 声明合并 JSX Decorators 混入 三斜线指令 JavaScript文件里的类型检查 实用工具类型 如何书写声明文件 介绍 库结构 举例 最佳实践 深入 模板 发布 使用 工程配置 tsconfig.json 工程引用 NPM包的类型 编译选项 配置 Watch 在MSBuild里使用编译选项 与其它构建工具整合0 码力 | 683 页 | 6.27 MB | 1 年前3Hello 算法 1.2.0 简体中文 Dart 版
力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 378 页 | 18.46 MB | 9 月前3Hello 算法 1.2.0 简体中文 JavaScript 版
力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 379 页 | 18.47 MB | 9 月前3Hello 算法 1.0.0 Dart版
力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 仓库。动画在 PDF 内的 展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 i 目 录 第 0 章 前言 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 第 3 章 数据结构 51 3.1 数据结构分类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2 基本数据类型0 码力 | 377 页 | 17.56 MB | 1 年前3Hello 算法 1.1.0 Dart版
力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 Offer,但会引导你探索数据结构与算法的 “知识地图”,带你了解不同“地雷”的形状、大小和分布位置,让你掌握各种“排雷方法”。有了这些本领, 相信你可以更加自如地刷题和阅读文献,逐步构建起完整的知识体系。 我深深赞同费曼教授所言:“Knowledge 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一本通俗易懂的数据结构与算法入门书,引导读者手脑并用地学习,强烈推荐算法初学者阅读!” ——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小0 码力 | 378 页 | 18.45 MB | 1 年前3
共 51 条
- 1
- 2
- 3
- 4
- 5
- 6