抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

现代前端的Web应用路由-为React打造一个迷你路由器

路由不仅仅只是网络的代名词,它更像是一种表达路径的概念。与网络中的路由相似,前端中的页面路由也是带领我们前往指定的地方。 现代前端的 Web 应用路由时代在变迁,过去,Web 应用的基本架构使用了一种不同于现代路由的方法。曾经的架构通常都是由后端生成的 HTML 模板来发送给浏览器。当我们单击一个标签导航到另一个页面时,浏览器会发送一个新的请求给服务器,然后服务器再将对应的页面渲染好发过来...

性能优化-useMemo and useCallback

性能优化一直是一个值得考虑的问题,但更值得考虑的是什么时候该优化。如果优化不得当,对于向 React 这类成熟的框架来说,即可能会过早优化。反而花了过多的时间来降低其性能。 React 的 useMemo 和 useCallback 这两个 hook 基本上就是为性能优化而准备的。既然有了优化的方案,剩下的就是什么时候该做优化。对其我目前的看法就是除非性能明显降低,否则不必太早考虑去进行优化...

异步JavaScript-Promise信任问题

继前篇 异步JavaScript-现在与将来 | 🍭Defectink 对异步 JavaScript 有了个大概的了解之后,就要来真正的上手一下 Promise 了。但在了解 Promise 解决了哪些问题时,我们要先了解一下传统的回调会带来哪些问题。 回调信任问题回调为什么会有信任问题?回调的本质就是等待将来执行完成的事件来执行我们所准备的函数。 // A ajax('url.1...

异步JavaScript-现在与将来

所有重要的程序都需要通过这样或那样的方法来管理持续一段时间的程序行为。这可能是用户输入、从数据库或文件系统中请求数据、通过网络发送数据并等待响应等。在诸如此类的场景中,程序都需要管理这段时间间隔执行重复任务。 事实上,程序中现在运行的部分和将来运行的部分之间的关系就是异步编程的核心。 分块的程序可以将 JavaScript 程序写在单个.js文件中,但是这个程序几乎一定是由多个块组成。这些块...

JavaScript-语法

在 JavaScript 中,有很多常见的语法仍然有很多地方容易产生困惑、造成误解。 语句与表达式语句(statement)和表达式(expression)常常被混为一谈,但他们二者之间有细微的差别。语句相当于一句话,而表达式更类似于一条短语。 JavaScript 中表达式可以返回一个结果值: let a = 3 * 6; const b = a; b; 上述带有let与const的语句...

JavaScript-类

对象将数组当作对象数组和对象的差距貌似并不大,好像完全可以将一个数组当作对象使用,但这并不是一个好主意。数组和普通的对象都根据其对应的行为和用途进行了优化,所以最好只用对象来存储键/值对,只用数组来存储下标/值对。 如果试图给一个数组添加一个类似数字的属性,例如字符串'3',那么在数组进行存储之后会将其作为下标,并且转为数字。 let arr = [] arr.a = 123...

JavaScript-代理与反射

ECMAScript 6 新增的代理和反射为开发者提供了拦截并向基本操作嵌入额外行为的能力。 反射 API在研究代理之前,应该先看下反射。与 Math 类似,Reflect 对象不是类,尽管他们都是大写开头的。它的属性只是定义了一组相关的方法。这些 ES6 添加的函数为“反射”对象及其属性定义了一套 API。 Reflect 对象在同一个命名空间里定义了一组边界函数,这些函数可以模拟核心语言...

JavaScript-值与类型

值与引用在许多编程语言中,赋值和参数传递可以通过值赋值(value-copy)或者引用复制(reference-copy)来完成。 例如在 C 中,传递一个引用值可以通过声明类似于这样的int* num参数来按引用传递,如果传递一个变量 x,那么num就是指向 x 的引用。引用就是指向变量的指针,如果不声明为引用的话,参数值总是通过值来传递的。即便是复杂的对象值也是如此(C++)。 与 C/...

JavaScript-事件

JavaScript 和 HTML 直接的交互是通过事件实现的。当文档或者浏览器发生交互时,使用侦听器(处理程序)来预定事件,以便事件发生时执行相应的代码。在传统软件工程中被称之为观察员模式。 事件最早是在 IE3 和 Netscape Navigator 2 中出现的。 事件流经常在一些文章中看到的事件冒泡或者捕获就是用于描述事件流的两种方式。在浏览器发展到 IE4 的时代时,人们开始考虑...

JavaScript-this全面解析

this 全面解析this 和动态作用域有些许类似,他们都是在执行时决定的。this 是在调用时被绑定的,完全取决于函数的调用位置。 确定调用位置当一个函数被调用是,会创建一个活动记录(执行期上下文)。这个记录会包含函数在哪里被调用(调用栈)、函数的调用方式、传入的参数等信息。this 就是这个记录里的一个属性。 调用位置就是函数在代码中被调用的位置,而不是声明的位置。可以类似于这样来这个记...