-  可组合的 Vue  Composable Vue, 编写可组合可复⽤的 Vue 函数的最佳实践与技巧  ANTHONY FU  Hangzhou, China 2021  Anthony Fu  antfu  antfu7  Anthony Fu  antfu.me  Vue 核⼼成员 / Vite 团队成员   VueUse, Slidev, Type Challenges 等项⽬创作者   全职开源 有限的类型⽀持  按 API 类型组织  极易复⽤ (原⽣ JS 函数)  可灵活组合 (⽣命周期钩⼦可多次使⽤)  提供更好的上下⽂⽀持  更好的 TypeScript 类型⽀持  按功能/逻辑组织  可独⽴于 Vue 组件使⽤  对象式 API 存在的问题 组合式 API 提供的能⼒  什么是可组合的函数  Dark  可复⽤逻辑的集合,专注点分离  export function useDark(options: = v === preferredDark.value           ? 'auto' : v ? 'dark' : 'light'      },    })  }   在 VueUse 中可⽤: usePreferredDark useLocalStorage useDark  组合关系  其中每⼀个函数都可以独⽴使⽤  专注点分离  useDark  usePreferredDark  0 码力 |
          36 页 |
          4.87 MB
          | 1 年前 3 
 
-  基础篇:webpack 与构建发展简史  目 录  CONTENTS  01  基础篇:webpack 基础用法 02  进阶篇:编写可维护的 webpack 构建配置 04  进阶篇:webpack 构建速度和体积优化策略 05  原理篇:通过源码掌握 webpack 打包原理 06  原理篇:编写 Loader 和插件 07  实战篇:React 全家桶 和 webpack 开发商城项目 08 2.0 - > 16.3.0 -> 16.3.1  软件的版本通常由三位组成,形如: X.Y.Z  在发布重要版本时,可以发布alpha, rc 等先行版本  alpha和rc等修饰版本的关键字后面可 以带上次数和meta信息  遵守 semver 规范的优势  优势:  ·避免出现循环依赖  ·依赖冲突减少  语义化版本(Semantic Versioning)规范格式  次版本号:当你做了向下兼容的功能性新增, 0 码力 |
          30 页 |
          5.38 MB
          | 1 年前 3 
 
-  误,你仍然可以使用TypeScript。但在这种情况下,TypeScript会警告你代码可能  不会按预期执行。  接口  让我们开发这个示例应用。这里我们使用接口来描述一个拥  有  firstName 和  lastName 字段的对象。 在TypeScript里,只在两个类型内部的  结构兼容那么这两个类型就是兼容的。 这就允许我们在实现接口时候只要保证包含  了接口要求的结构就可以,而不必明确地使用  implements 语句。 document.body.innerHTML = greeter(user);  类  最后,让我们使用类来改写这个例子。 TypeScript支持JavaScript的新特性,比如  支持基于类的面向对象编程。  让我们创建一个  Student 类,它带有一个构造函数和一些公共字段。 注意类和接  口可以一起共作,程序员可以自行决定抽象的级别。  还要注意的是,在构造函数的参数上使用  public greeter(user);  重新运行  tsc greeter.ts ,你会看到生成的JavaScript代码和原先的一样。  TypeScript里的类只是JavaScript里常用的基于原型面向对象编程的简写。  运行TypeScript Web应用  在  greeter.html 里输入如下内容:           TypeScript0 码力 |
          557 页 |
          7.48 MB
          | 1 年前 3 
 
-   1.6.1.38  1.6.2  1.6.2.1  1.6.3  1.6.4  1.7  1.7.1  1.7.2  1.7.3  1.7.4  学习可访问性相关知识  学习 web/浏览器 API  学习 JSON (JavaScript 对象表示法)  学习 JS 模板  学习静态网页生成器  通过JS学习计算机科学  学习前端应用架构  学习数据(例如,JSON)API 的设计  学习 React CSS  学习搜索引擎优化  学习 JavaScript  学习 Web 动画  学习 DOM、BOM 和 jQuery  学习网页字体 & 图标  学习可访问性相关知识  学习 web/浏览器 API  学习 JSON (JavaScript 对象表示法)  学习 JS 模板  学习静态网页生成器  通过JS学习计算机科学  学习前端应用架构  学习数据(例如,JSON)API 的设计  学习 React 们远去。  2016 前端开发回顾  14  几乎人人都意识到开发网页的时候必须考虑多设备适配策略。  使用其他语言的开发者持续涌入 JS 领域,他们也带来了一些东西:例如类型检测,和对  类语法以及面向对象思想的执念。  前端开发引入了热模块替换技术和时间旅行调试。  原生 JS 浏览器模块加载器更受期待了。  Enforcing CSS 和 JS 格式规范变得更受重视(就 ES3 到 ES6 编码以及 0 码力 |
          164 页 |
          6.43 MB
          | 1 年前 3 
 
-  ECMAScript 6简介  let 和 const 命令  变量的解构赋值  字符串的扩展  正则的扩展  数值的扩展  函数的扩展  数组的扩展  对象的扩展  Symbol  Set 和 Map 数据结构  Proxy  Reflect  Promise 对象  Iterator 和 for...of 循环  Generator 函数的语法  Generator 函数的异步应用  async 函数  Class map, ast }  // Babel AST转码  babel.transformFromAst(ast, code, options);  // => { code, map, ast }  配置对象  options ,可以参看官方文档http://babeljs.io/docs/usage/options/。  下面是一个例子。  var es6Code = 'let x = n => n + 代码,第二个参数是转换的配置对象。  ECMAScript 6简介  16  babel-polyfill  Babel 默认只转换新的 JavaScript 句法(syntax),而不转换新的 API,比  如  Iterator 、  Generator 、  Set 、  Maps 、  Proxy 、  Reflect 、  Symbol   、  Promise 等全局对象,以及一些定义在全局对象上的方法(比 0 码力 |
          679 页 |
          2.66 MB
          | 1 年前 3 
 
-  Attribute  自定义事件  插槽  提供 / 注入  动态组件 & 异步组件  模板引用  处理边界情况  过渡&动画  过渡 & 动画概述  进入过渡 & 离开过渡  列表过渡  状态过渡   可复用性&组合  混入  自定义指令  传入  渲染函数  插件  高阶指南  - 2 - 本文档使用 书栈网 · BookStack.CN 构建  响应性  深入响应性原理  响应式原理  响应式计算和侦听 介绍  - 16 - 本文档使用 书栈网 · BookStack.CN 构建  在 Vue 中,组件本质上是一个具有预定义选项的实例。在 Vue 中注册组件很简单:如对  App    对象所做的那样创建一个组件 对象,并将其定义在父级组件的  components  选项中:  1. // 创建 Vue 应用  2. const app = Vue.createApp(...)  3.   4. //  1.    2.      3.        9.      0 码力 |
          368 页 |
          3.97 MB
          | 1 年前 3 
 
-  document.body.textContent = greeter(user);  最后,让我们使用类来改写这个例子。 TypeScript支持JavaScript的新特性,比如支持基于类的  面向对象编程。  让我们创建一个  Student 类,它带有一个构造函数和一些公共字段。 注意类和接口可以一起共作,  程序员可以自行决定抽象的级别。  还要注意的是,在构造函数的参数上使用  public greeter(user);  重新运行  tsc greeter.ts ,你会看到生成的JavaScript代码和原先的一样。 TypeScript里的  类只是JavaScript里常用的基于原型面向对象编程的简写。  在  greeter.html 里输入如下内容:  1.   2.   3.      TypeScript Greeter copy-html 会被首先执行。 我们还修改了  default 任务,让它使用  tsify 插件调用  Browserify,而不是  gulp-typescript 。 方便的是,两者传递相同的参数对象到TypeScript编  Gulp  - 42 - 本文档使用 书栈网 · BookStack.CN 构建  译器。  调用  bundle 后,我们使用  source (vinyl-source-stream的别名)把输出文件命名0 码力 |
          683 页 |
          6.27 MB
          | 1 年前 3 
 
-  与设备  自身能力相关的问题,即:  4 > 2021年美团技术年货  (1) 如何监听设备的 VSync 信号并通知 Flutter 引擎? (2) OpenGL/Vulkan 用于上  屏的窗口对象从何而来?  VSync 信号的监听及传递  在 Flutter 引擎的 Android 实现中,设备的 VSync 信号通过 Choreographer 触发,  它产生及消费流程如下图所示:  Flutter 引擎的图形渲染提供  用于上屏的窗口对象。同样,我们参考 Flutter for Android 的实现,看一下 Android   系统是怎么做的:  Flutter 在 Android 上支持 Vulkan 和 OpenGL 两种渲染引擎,篇幅原因我们只关注   OpenGL。抛开复杂的注册及调用细节,本质上整个流程主要做了三件事:    ● 创建了一个视图对象,提供可用于直接绘制的 Surface,将它通过  前端 < 7    ● 在原生侧获取 Surface 关联的本地窗口对象,并交给 Flutter 的平台容器;    ● 将本地窗口对象转换为 OpenGL ES 可识别的绘图表面(EGLSurface),用  于 Flutter 引擎的渲染上屏。  接下来我们用鸿蒙提供的平台能力实现这三点。  a. 可用于直接绘制的视图对象  鸿蒙系统的 UI 框架提供了很多常用视图组件(Component),比如按钮、文字、图 0 码力 |
          738 页 |
          50.29 MB
          | 1 年前 3 
 
-  null,undefined 和布尔值  数值  字符串  对象  函数  数组  运算符  算术运算符  比较运算符  布尔运算符  二进制位运算符  其他运算符,运算顺序  语法专题  数据类型的转换  错误处理机制  编程风格  console 对象与控制台  标准库  Object 对象  属性描述对象  Array 对象  包装对象  Boolean 对象  - 1 - 本文档使用 书栈(BookStack 书栈(BookStack.CN) 构建  Number 对象  String 对象  Math 对象  Date 对象  RegExp 对象  JSON 对象  面向对象编程  实例对象与 new 命令  this 关键字  对象的继承  Object 对象的相关方法  严格模式  异步操作  概述  定时器  Promise 对象  DOM  概述  - 2 - 本文档使用 书栈(BookStack.CN) 构建 - 9 - 本文档使用 书栈(BookStack.CN) 构建  从语法角度看,JavaScript 语言是一种“对象模型”语言。各种宿主  环境通过这个模型,描述自己的功能和操作接口,从而通过  JavaScript 控制这些功能。但是,JavaScript 并不是纯粹的“面  向对象语言”,还支持其他编程范式(比如函数式编程)。这导致几乎  任何一个问题,JavaScript 都有多种解决方法。阅读本书的过程 0 码力 |
          540 页 |
          3.32 MB
          | 10 月前 3 
 
-  来完成本书的创作。  本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。  本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。  动画在 PDF 内的展示效果受限,可访问 www.hello‑algo.com 网页版以获得更优的阅读体验。  推荐语  “一本通俗易懂的数据结构与算法入门书,引导读者手  ‧ 全书采用动画图解,内容清晰易懂、学习曲线平滑,引导初学者探索数据结构与算法的知识地图。  ‧ 源代码可一键运行,帮助读者在练习中提升编程技能,了解算法工作原理和数据结构底层实现。  ‧ 提倡读者互助学习,欢迎大家在评论区提出问题与分享见解,在交流讨论中共同进步。  0.1.1 读者对象  若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与  不会之 不会之间反复横跳,那么本书正是为你量身定制的!  如果你已经积累一定的刷题量,熟悉大部分题型,那么本书可助你回顾与梳理算法知识体系,仓库源代码可 以当作“刷题工具库”或“算法字典”来使用。  若你是算法“大神”,我们期待收到你的宝贵建议,或者一起参与创作。  前置条件  你需要至少具备任一语言的编程基础,能够阅读和编写简单代码。  0.1.2 内容结构  本书的主要内容如图 0‑1 所示。  ‧ 复杂度 0 码力 |
          378 页 |
          18.46 MB
          | 10 月前 3