Vue声明式编程Vue声明式编程 摘要 • 声明式与图灵完备性 • 声明式与UI编程的演进 • 声明式与UI架构 • 声明式与交互 声明式与图灵完备性 声明式 • 我们对语⾔言有很多划分的维度 • 声明式 vs 命令式 • 声明式语⾔言:HTML XML CSS SQL • 命令式语⾔言:C++ Java JavaScript 图灵完备性 • 图灵完备:“可计算性” • 命令式的图灵完备性:if/for, 声明式的图灵完备性:if/递归 Vue的Template的图灵完备性 • 实际上Vue的组件系统具有图灵完备性 • 使⽤用Vue计算阶乘 • 使⽤用Vue计算斐波那契数列列 声明式与UI编程 UI编程 • 70年年代 MVC诞⽣生 ⼈人们意识到视图应该被独⽴立抽象 • 80年年代 标记语⾔言⼤大热 最初更更与⽂文本相关 • 90年年代 可视化编辑器器出现 “独⽴立的UI代码⽂文件” Recycle Pool Visible Area 声明式与UI架构 MVVM • MVC => MVP => MVVM ⼀一脉相承的演化 • MVVM是为声明式/多语⾔言量量身定做的编程模型 MVVM的数据绑定 • 数据绑定是声明式的数据与UI通讯 • ⼀一些逻辑中数据绑定不不需要命令式代码 声明式数据交换 交互的抽象 ⼿手势 时间 陀螺仪 …… 位置 透明度0 码力 | 19 页 | 155.76 KB | 1 年前3
[试读] Angular 5 高级编程Web 开发经典丛书 Angular 5 高级编程 (第 2 版) [美] Adam Freeman 著 杨明军 颜炯 等译 北 京 Pro Angular, Second Edition Adam Freeman EISBN:978-1-4842-2306-2 本书封面贴有清华大学出版社防伪标签,无标签者不得销售。 版权所有,侵权必究。侵权举报电话:010-62782989 13701121933 图书在版编目(CIP)数据 Angular 5高级编程:第2版 / (美)亚当 • 弗里曼(Adam Freeman) 著;杨明军 等译. —北京:清华大学出 版社,2018 (Web 开发经典丛书) 书名原文:Pro Angular, Second Angular 5 是构建动态 JavaScript 应用程序的领先框架,而想讲清楚这个包罗万象的一 站式框架的各项强大功能是一项很大的挑战。Adam Freeman 撰著的《Angular 5 高级编程(第 2 版)》详细描述如何在项目中使用 Angular,从最基本的构造块开始,到最终构建最先进 和复杂的功能,深入讲解开发者所需要掌握的所有知识。本书讲解 Angular 框架的面面俱 到,同时0 码力 | 42 页 | 6.14 MB | 1 年前3
[试读]Angular 应用安全编程中文书名:Angular 应用安全编程 Book Title: Securing Angular Applications Google Angular Team 编著 北京 • BEIJING 序 Angular 是一个开发平台。它能帮你更轻松的构建 Web 应用。Angular 集声明式模板、依赖注入、端到 端工具和一些最佳实践于一身,为你解决开发方面的各种挑战。Angular 为开发者提升构建0 码力 | 27 页 | 177.00 KB | 1 年前3
新语⾔,新思维 解读⼀个并发问题的多种实现 - 陶召胜新语⾔言,新思维 解读⼀一个并发问题的多种实现 陶召胜 next: 异步编程的问题 变量量读写冲突 异步任务1 异步任务2 共享变量量 读、写 读、写 IO阻塞 回调地狱 Future也有不不⾜足 • get 很容易易导致另⼀一个对象阻塞 • 不不⽀支持多值、⾼高级错误处理理 next: 多任务求解1-10,000,000的和 序号 语⾔言 关键点 1 JavaScript JavaScript 不不再有回调地狱,变异步为顺序化思维,程序更更加可读 2 Go ⾼高并发调度,通道让异步编程更更简单 3 Scala (1)简洁的异步编程 (2)AKKA:分布式计算框架 4 Java (1)fork/join (2)CompletableFuture (3)反应式编程(Reactive Programming ) next: JavaScript 关键点:不 例例⼦子JavaScript实现(Generator) 例例⼦子JavaScript实现(async/await) 多进程,利利⽤用多核 输出: next: Go 关键点:⾼高并发调度,通道让异步编程更更简单 2015年年 Go 1.5 2016年年 Go1.6、1.7 2017年年 Go1.8、 1.9 goroutine gorutine在逻辑处理理器器上执⾏行行0 码力 | 42 页 | 9.85 MB | 1 年前3
Web的未来
新技术和新语言带来的改变技术发展方向 ● 演进中的各种新技术标准 ● 编程语言的多元化 Web 是平台,能在上面做什么归根结底是技术标 准和浏览器支持说了算。 技术可以被 hack 的方式玩出新花样,但能力本 身并没有改变。 技术发展方向 1. 能力的扩展来自新技术:如 WebRTC 和 Web Components。 2. 开发方式会有不同流派,但基础技术的支撑很 重要,如编程语言。 1. Web的演化 2. 语言篇 { return "Hello, " + this.greeting; } } var greeter = new Greeter("world"); 在Web上试用其它编程语言 ● Dart http://try.dartlang.org/ ● TypeScript http://www.typescriptlang.org/Playground/ ● CoffeeScript 技术篇(Web Components) 大纲 ● 2011年10月对外宣布 ● Chrome V8 团队打造 ● 主要成员包括:Lars Bak、Kasper Lund、Gilad Bracha等 ● 以大量编程语言实现的经验为基础 Dart 语言的诞生 Dart 并非颠覆,而为实用 Dart 代码 class Cookie { var number_of_chips; Cookie(num)0 码力 | 91 页 | 3.44 MB | 1 年前3
阮一峰 《ECMAScript 6入门》 第三版Generator 函数的语法 Generator 函数的异步应用 async 函数 Class 的基本语法 Class 的继承 Decorator Module 的语法 Module 的加载实现 编程风格 读懂规格 ArrayBuffer 2 1.28 2.1 2.2 2.3 参考链接 其他 源码 修订历史 反馈意见 3 ECMAScript 6 入门 《ECMAScript 是一个不存在的变量名,结果返 回“undefined”。所以,在没有 let 之前, typeof 运算符是百分之百安全的,永 远不会报错。现在这一点不成立了。这样的设计是为了让大家养成良好的编程习 惯,变量一定要在声明之后使用,否则就报错。 有些“死区”比较隐蔽,不太容易发现。 function bar(x = y, y = 2) { return [x, y]; } bar(); 创造的,而属性的 let 和 const 命令 41 创造是动态的);其次,程序员很容易不知不觉地就创建了全局变量(比如打字出 错);最后,顶层对象的属性是到处可以读写的,这非常不利于模块化编程。另一 方面, window 对象有实体含义,指的是浏览器的窗口对象,顶层对象是一个有实 体含义的对象,也是不合适的。 ES6为了改变这一点,一方面规定,为了保持兼容性, var 命令和0 码力 | 679 页 | 2.66 MB | 1 年前3
《玩转webpack》第六章 原理篇: 通过源码掌握 webpack 打包原理webpack 对象,然后执行构建流程 webpack-cli对配置文件和命令行参数进行转换最终生成配置选项参数 options Webpack 的本质 Webpack可以将其理解是一种基于事件流的编程范例,一系列的插件运行。 先看一段代码 class Compiler extends Tapable { // ... } class Compilation extends Tapable //异步并发钩子 AsyncParallelBailHook, //异步并发熔断钩子 AsyncSeriesHook, '1'); }); AST 基础知识 抽象语法树(abstract syntax tree 或者缩写为 AST),或者语法树(syntax tree),是 源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。树上的每个节点都 表示源代码中的一种结构。 在线demo: https://esprima.org/demo/parse.html 复习一下 webpack 的模块机制 · 打包出来的是一个0 码力 | 39 页 | 3.66 MB | 1 年前3
阮一峰 JavaScript 教程数据类型的转换 错误处理机制 编程风格 console 对象与控制台 标准库 Object 对象 属性描述对象 Array 对象 包装对象 Boolean 对象 - 1 - 本文档使用 书栈(BookStack.CN) 构建 Number 对象 String 对象 Math 对象 Date 对象 RegExp 对象 JSON 对象 面向对象编程 实例对象与 new 命令 JavaScript 语言的入门教程,也适合当作日 常使用的参考手册。 介绍 - 5 - 本文档使用 书栈(BookStack.CN) 构建 前言 前言 我写这本教程,主要原因是自己需要。 编程时,往往需要查阅资料,确定准确用法。理想的 JavaScript 参 考书,应该简明易懂,一目了然,告诉我有哪些注意点,提供代码范 例。如果涉及重要概念,还应该适当讲解。可是大多数时候,现实都不 语言是一种“对象模型”语言。各种宿主 环境通过这个模型,描述自己的功能和操作接口,从而通过 JavaScript 控制这些功能。但是,JavaScript 并不是纯粹的“面 向对象语言”,还支持其他编程范式(比如函数式编程)。这导致几乎 任何一个问题,JavaScript 都有多种解决方法。阅读本书的过程 中,你会诧异于 JavaScript 语法的灵活性。 JavaScript 的核心语法部分相当精简,只包括两个部分:基本的语0 码力 | 540 页 | 3.32 MB | 10 月前3
2019-2021 美团技术年货 前端篇基础依赖开发的 Plugin,因此并不支持 Web 端。此章节将展开介绍如 何丝滑无感地扩展 MTFlutter 基础依赖在 Web 端的实现。 4.1.1 Flutter Package 分平台编程 在 Flutter 中通过使用 Package 可以创建易于共享的模块化代码。官方强烈推荐使 用 Package 形式管理各种工具方法。在官方定义中 Package 包含以下两种类别: ● Package 中如何分平台编程进行介绍。 (1) Dart Package Dart Package 是纯 Dart 编写,因此大部分代码均可由 dart2js 直接编译出 Web 平 台可运行的代码,但某些涉及 Native 能力的库 (如 dart:io)是无法被转译的,因此 前端 < 19 需要有对平台进行兼容的方法,下面介绍两种在 Dart Package 中分平台编程的方案。 代码级别分平台 dart’; void main() { print(‘import tool’); } 条件导入和条件导出类似,仅需将 export 改为 import 即可。在业务开发中这也是一 种非常实用的分平台编程方法。 20 > 2021年美团技术年货 (2) Plugin Package Plugin Package ( 下文简称为 Plugin) 在 Android 和 iOS 平台都是通过 Method-0 码力 | 738 页 | 50.29 MB | 1 年前3
Hello 算法 1.0.0b1 JavaScript版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 12. 附录 178 12.1. 编程环境安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 12.2. 一起参与创作 梳理算法知识 体系,仓库源代码可以被当作“刷题工具库”或“算法字典”来使用。 如果您是「算法大佬」,希望可以得到你的宝贵意见建议,或者一起参与创作。 � 前置条件 您需要至少具备任一语言的编程基础,能够阅读和编写简单代码。 0.1.2. 内容结构 本书主要内容有: ‧ 复杂度分析:数据结构与算法的评价维度、算法效率的评估方法。时间复杂度、空间复杂度,包括推算 方法、常见类型、示例等。 读文献时使用。 重点内容、总起句、总结句会被 加粗,此类文字值得特别关注。 专有名词和有特指含义的词句会使用“双引号” 标注,以避免歧义。 0. 写在前面 hello‑algo.com 4 本书部分放弃了编程语言的注释规范,以换取更加紧凑的内容排版。注释主要分为三种类型:标题注释、内容 注释、多行注释。 /* 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** *0 码力 | 185 页 | 14.70 MB | 1 年前3
共 44 条
- 1
- 2
- 3
- 4
- 5













