2019-2021 美团技术年货 前端篇自动生成代码的方案。 目前,业内主流的代码生成方案有两种,一种是通过训练神经网络,从图片或草图直 接生成代码,以微软 sketch2json 为代表;另一种是基于 Sketch 源文件,从中解析 出图层信息转化成 DSL 并生成代码,以 imgCook 为代表。经过实践,我们发现第 一种方案基于神经网络的代码生成算法虽然简单粗暴,但复杂层布局的准确率较低、 可解释程度不高导致后续无法持续优化。方案二中 环布局),58 Picasso 仅支持原始组件的识别,复杂组件生成错误较多,不支 持成组 / 悬浮 / 循环布局,准确率较低。 ● 代码可读性方面:淘宝 imgCook 在生成布局时,测试样本中图层重叠区域使 用到了基于根布局的绝对定位方式,不符合 RD 预期,可读性一般,而我们的 方案使用相对定位方式,可读性较好。 58 > 2021年美团技术年货 ● 研发流程覆盖度方面:淘宝 imgCook 钮、标题、进度条、评分组件等,但 是 Sketch 数据源中并没有这些组件只有图层信息,图层是设计师在设计 UI 视图时 用到的视图控件。组件与图层的对应关系是一对多的关系,图层在 Sketch 数据源中 的表现形式如下图中的 JSON 数据结构所示,描述了图层的坐标、大小等信息,后 续布局生成就是基于对图层的切割来实现的。 [ { "class_name":"MSTextLayer"0 码力 | 738 页 | 50.29 MB | 1 年前3
Vue.js v3.0 教程(Vue3 教程)的新功能可以参阅迁移指南! Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的 是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第 三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库 (opens new window) 结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。 129 - 本文档使用 书栈网 · BookStack.CN 构建 发重绘。在工具中,查看 transform 的相关内容,你将看到: 非常好的是,更改 transform 不会触发任何几何形状变化或绘制。这意味着该操作可能是由合成器线程在 GPU 的帮助下执行。 opacity 属性的行为也类似。因此,他们是在 web 上做元素移动的理想选择。 诸如 perspective 、 的开发者,你可能会对 Vuex 和 Redux (opens new window) 间的差异 表示关注,Redux 是 React 生态环境中最流行的 Flux 实现。Redux 事实上无法感知视图层,所 以它能够轻松的通过一些简单绑定 (opens new window)和 Vue 一起使用。Vuex 区别在于它是 一个专门为 Vue 应用所设计。这使得它能够更好地和 Vue 进行整合,同时提供简洁的0 码力 | 368 页 | 3.97 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
廖雪峰JavaScript教程如果需要绘制3D怎么办?HTML5还有一个WebGL规范,允许在Canvas中绘制3D图形: 1. gl = canvas.getContext("webgl"); 本节我们只专注于绘制2D图形。 我们可以在Canvas上绘制各种形状。在绘制前,我们需要先了解一下Canvas的坐标系统: Canvas的坐标以左上角为原点,水平向右为X轴,垂直向下为Y轴,以像素为单位,所以每个点都是非 负整数。 CanvasRenderingContext2D canvas.getContext('2d'); 6. 7. ctx.clearRect(0, 0, 200, 200); // 擦除(0,0)位置大小为200x200的矩形,擦除的意思是把该 区域变为透明 8. ctx.fillStyle = '#dddddd'; // 设置颜色 9. ctx.fillRect(10, 10, 130, 130); // 把(10,10)位置大小为130x130的矩形涂色 35, 0, Math.PI, false); 15. path.moveTo(65, 65); 16. path.arc(60, 65, 5, 0, Math.PI*2, true); 绘制形状 6.7 Canvas - 164 - 本文档使用 书栈(BookStack.CN) 构建 17. path.moveTo(95, 65); 18. path.arc(90, 65, 5, 00 码力 | 264 页 | 2.81 MB | 10 月前3
基于AngularJS的企业应⽤前端架构前端逻辑有⼀一定规模,分层有利协作 – 便于保证数据的⼀一致性 – 业务逻辑的复⽤用 – 每个层次的单独可测试 • Struts这种服务端MVC的弱点在哪⾥里? – 拉长了视图层的⽣生成和渲染 – 不利于UI⼈人员协作 ⾃自定义标签 • 在创建界⾯面时,声明式代码是有优势的。 • HTML的标签集是⽐比较贫乏的。 • 服务端⾃自定义标签的劣势0 码力 | 13 页 | 517.57 KB | 1 年前3
基于Electron vue的桌应用实战2Process IPC、RPC Render Process IPC 、RPC IPC ✔ 项⽬目实践 应⽤用架构 ⽤用户功能 ⼯工程搭建 项⽬目配置 模板注⼊入 构建部署 视图层 Bridge Node API Native API 服务端 Eggjs Cat Egg-cors Egg-Script 应⽤用层 中间层 客户端 Vue Vue-Router0 码力 | 34 页 | 3.47 MB | 1 年前3
electron中文教程
true ,否则是 false 。你可以用这 个方法来决定是否要开启透明窗口特效,因为如果用户没开启 DWM,那么透明窗口特效是无效的。 举个例子: 1. let browserOptions = {width: 1000, height: 800}; 2. 3. // 只有平台支持的时候才使用透明窗口 app.setAppUserModelId(id) Windows app transparent) { 14. win.loadURL('file://' + __dirname + '/index.html'); 15. } else { 16. // 没有透明特效,我们应该用某个只包含基本样式的替代解决方案。 17. win.loadURL('file://' + __dirname + '/fallback.html'); 18. } 通过可选的参数 String -窗口的 background color 值为十六进制,如 #66CD00 或 #FFF 或 #80FFFFFF (支持透明度). 默认为在 Linux 和 Windows 上为 #000 (黑色) , Mac上为 #FFF (或透明). hasShadow Boolean - 窗口是否有阴影. 只在 macOS 上有效. 默认为 true . darkTheme0 码力 | 203 页 | 2.72 MB | 1 年前3
Hello 算法 1.0.0b1 JavaScript版如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 github.com/krahets/hello‑algo 数据结构与算法的关系 如果将「LEGO 乐高」类比到「数据结构与算法」,那么可以得到下表所示的对应关系。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 1. 引言 hello‑algo.com 11 � 约定俗成的简称 在实际讨论中,我们通常会将「数据结构 算法是在有限时间内解决特定问题的一组指令或操作步骤,数据结构是在计算机中组织与存储数据的方 式。 ‧ 数据结构与算法两者紧密联系。数据结构是算法的底座,算法是发挥数据结构的舞台。 ‧ 乐高积木对应数据,积木形状和连接形式对应数据结构,拼装积木的流程步骤对应算法。 12 2. 复杂度分析 2.1. 算法效率评估 2.1.1. 算法评价维度 在开始学习算法之前,我们首先要想清楚算法的设计目标是什么,或者说,如何来评判算法的好与坏。整体上0 码力 | 185 页 | 14.70 MB | 1 年前3
Hello 算法 1.0.0b1 TypeScript 版如果你也有上述烦恼,那么很幸运这本书找到了你。本书是我对于该问题给出的答案,虽然不一定正确,但至 少代表一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知识地 图”,带你了解不同“地雷”的形状大小和分布位置,让你掌握各种“排雷方法”。有了这些本领,相信你可以 更加得心应手地刷题与阅读文献,逐步搭建起完整的知识体系。 书内的代码配有可一键运行的源文件,托管在 github.com/krahets/hello‑algo 数据结构与算法的关系 如果将「LEGO 乐高」类比到「数据结构与算法」,那么可以得到下表所示的对应关系。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 1. 引言 hello‑algo.com 11 � 约定俗成的简称 在实际讨论中,我们通常会将「数据结构 算法是在有限时间内解决特定问题的一组指令或操作步骤,数据结构是在计算机中组织与存储数据的方 式。 ‧ 数据结构与算法两者紧密联系。数据结构是算法的底座,算法是发挥数据结构的舞台。 ‧ 乐高积木对应数据,积木形状和连接形式对应数据结构,拼装积木的流程步骤对应算法。 12 2. 复杂度分析 2.1. 算法效率评估 2.1.1. 算法评价维度 在开始学习算法之前,我们首先要想清楚算法的设计目标是什么,或者说,如何来评判算法的好与坏。整体上0 码力 | 186 页 | 14.71 MB | 1 年前3
Vue声明式编程数据绑定是声明式的数据与UI通讯 • ⼀一些逻辑中数据绑定不不需要命令式代码 声明式数据交换 交互的抽象 ⼿手势 时间 陀螺仪 …… 位置 透明度 颜⾊色 …… 交互的抽象 ⼿手势 时间 陀螺仪 …… 位置 透明度 颜⾊色 …… Event Property Expression 使⽤用Vue Directive给元素添加⾏行行为 • Vue directive0 码力 | 19 页 | 155.76 KB | 1 年前3
共 27 条
- 1
- 2
- 3













