构造函数

Array是 JavaScript 的原生对象,同时也是一个构造函数,可以用它生成新的数组。

1
2
3
var arr = new Array(2);
arr.length; // 2
arr; // [ empty x 2 ]

上面代码中,Array构造函数的参数2,表示生成一个两个成员的数组,每个位置都是空值。

如果没有使用new,运行结果也是一样的。

阅读全文 »

语法

1
Object.defineProperty(obj, prop, descriptor);

参数

  • obj:要在其上定义属性的对象。
  • prop:要定义或修改的属性的名称。
  • descriptor:正在定义或修改的属性的描述符。
  • 返回值 传递给函数的对象

添加属性和默认值

阅读全文 »

for..in…时,注意 hasOwnProperty 验证

1
2
3
4
5
6
7
8
9
10
11
12
var obj = { a: 10, b: 20 };

// 注意词句代码
Object.prototype.c = 30;
var item;
for (item in obj) {
console.log(item);
console.log(obj[item]);
}

// 输出: a b c
// 输出:10 20 30

以下代码中,注意中间标注释的句子。这句代码加与不加,会对下面的 for..in..循环产生影响。加上了就输出“c”,不加就不输出“c”。道理很简单,for..in..循环不光能遍历 obj 对象本身就有的属性,还能遍历 obj 原型中的属性。
要想屏蔽掉原型中的属性,就用 hasOwnProperty 函数,如下:

1
2
3
4
5
6
for (item in obj) {
if (obj.hasOwnProperty(item)) {
//if (Object.prototype.hasOwnProperty.call(obj, item)) {
console.log(item);
}
}

这两句 if 判断语句,都可以用,效果是一样的。第一个代码可读性好,第二个效率相对较高。建议,没有特殊情况,用第一个即可。

阅读全文 »

概述

JavaScript 原生提供Object对象(注意起首的O是大写),本章介绍该对象原生的各种方法。

JavaScript 的所有其他对象都继承自Object对象,即那些对象都是Object的实例。

Object对象的原生方法分成两类:Object本身的方法与Object的实例方法。

(1)Object对象本身的方法

阅读全文 »

params 传参

params 传参(刷新页面后参数不消失,参数会在地址栏显示)

路由页面:

1
<Route path="/demo/:id" component={Demo}></Route> // 注意要配置 /:id

路由跳转并传递参数:

阅读全文 »

插槽,在 React 中没找到?

在使用 Vue 的时候,插槽是一个特别常用的功能,通过定义插槽,可以在调用组件的时候将外部的内容传入到组件内部,显示到指定的位置。在 Vue 中,插槽分为默认插槽,具名插槽和作用域插槽。其实不仅仅 Vue,在 React 中其实也有类似插槽的功能,只是名字不叫做插槽,下面我将通过举例来说明。

默认插槽

现在项目需要开发一个卡片组件,如下图所示,卡片可以指定标题,然后卡片内容可以用户自定义,这时候对于卡片内容来说,就可以使用插槽来实现,下面我们就分别使用 Vue 和 React 来实现这个功能

Vue 实现

阅读全文 »

constructor

构造函数中完成了 React 数据的初始化,它接受两个参数:propscontext,当想在函数内部使用这两个参数时,需使用 super()传入这两个参数。
注意:只要使用了 constructor()就必须写 super(),否则会导致 this 指向错误。

componentWillUnmount

当组件已经初始化,但是还未渲染 DOM 时

componentWillUnmount

阅读全文 »

方法一

在 package.json 中追加如下配置

1
2
3
4
{
// ...
"proxy": "http://localhost:5000"
}

说明:

  1. 优点:配置简单,前端请求资源时可以不加任何前缀。
  2. 缺点:不能配置多个代理。
  3. 工作方式:上述方式配置代理,当请求了 3000 不存在的资源时,那么该请求会转发给 5000 (优先匹配前端资源)
阅读全文 »

理解 react-router

react 的一个插件库
专门用来实现一个 SPA 应用
基于 react 的项目基本都会用到此库

几个重要问题

SPA 应用

单页 Web 应用(single page web application,SPA)
整个应用只有一个完整的页面
点击页面中的链接不会刷新页面, 本身也不会向服务器发请求
当点击链接时, 只会做页面的局部更新
数据都需要通过 ajax 请求获取, 并在前端异步展现

阅读全文 »