前言
组件(Component) 是 Vue 最强大的功能之一,使用组件化的开发方式可以提高 Web 应用的可维护性。不同组件需要协同合作,组件间通信是必不可少的。在 Vue 中,父子组件之间的通信可以总结为 props down, events up
,非父子组件之间通信主要是借助于 Event Bus 来实现,下面以几个实例来进行详细探讨。本文的代码都在 这里。
组件(Component) 是 Vue 最强大的功能之一,使用组件化的开发方式可以提高 Web 应用的可维护性。不同组件需要协同合作,组件间通信是必不可少的。在 Vue 中,父子组件之间的通信可以总结为 props down, events up
,非父子组件之间通信主要是借助于 Event Bus 来实现,下面以几个实例来进行详细探讨。本文的代码都在 这里。
事情的起因是这样的,笔者在玩浏览器控制台的时候,偶然发现下面这段代码的运行结果很有意思:
|
|
笔者一直以为 JavaScript 中所有的隐式类型转换规则都是一样的,所以特别纳闷,a
在隐式类型转换后明明变成了 false
,但在 if 语句中为什么又变成了 true
呢?查阅红宝书之后笔者才发现,JavaScript 的隐式类型转换并没有那么简单。
笔者最近在开发过程中遇到一个有意思的问题。如果把一张图片,按照九宫格的方式分成9张小图,再用代码把它们拼接成一张大图的时候,水平方向和垂直方向都会出现空隙。下面来分析一下空隙产生的原因及其解决方法。
本文记录了通过 npm 搭建 React + webpack + Babel 开发环境的过程,笔者在此踩了很多坑,这里谨记录正确的搭建流程,供大家参考与交流学习。
推荐使用最新版本的 npm,且 webpack 与 Babel 均采取局部安装,而不是全局安装。
在 JavaScript 中,对于 Object 与 Array 等引用类型值的复制有深复制与浅复制的区别。简单的说,浅复制只复制一层对象的属性,而深复制则递归复制了所有层级。下面介绍一下如何实现对象的深复制与浅复制。
JavaScript 是一门面向对象的编程语言,它内置了一些可以遍历对象属性的方法,如 for...in
, Object.keys()
, Object.getOwnPropertyNames()
, Reflect.ownKeys()
等。但这几种方法间存在一些区别,本文就来将它们对比一下。
我们都知道,在 JavaScript 中,函数的参数 arguments 对象只是一个 类数组(Array-like) 对象,而不是真正的数组。那么如果我们想把它变成一个真正的数组对象,该怎么做呢?
下面就以 arguments 为例,总结几种类数组对象转换为数组对象的办法。
this
是 JavaScript 中的一个关键字,它指向一个对象。在不同场合,this
有不同含义,在 严格模式 与 非严格模式 之间它也有一些区别。
那么如何判断 this 关键字的指向呢?首先需要记住的一点是,this 所指的对象取决于它使用的时候所处的环境,而不是它定义的时候所处的环境(箭头函数除外)。下面分几种情况来分别讨论。
HTTP 状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它的职责是当客户端向服务器端发送请求时,描述返回的请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了错误。