📜  反应与普通 js 有何不同 - Javascript (1)

📅  最后修改于: 2023-12-03 15:22:52.475000             🧑  作者: Mango

反应与普通 JavaScript 有何不同

JavaScript 是一种非常流行的编程语言,被广泛应用于前端开发、后端开发、移动应用开发、桌面应用开发等多个领域。在前端开发中,React 是一种非常流行的 JavaScript 框架,它的出现引起了前端开发的革命。

那么,React 与普通 JavaScript 有何不同呢?接下来让我们来进行详细的介绍。

1. 组件化开发思想

React 提出了一种全新的组件化开发思想,这种思想与普通 JavaScript 编程有很大不同。在普通 JavaScript 编程中,我们通常是写一些函数或者类来实现某些功能,这些函数或者类都是独立的,没有太多的联系。而在 React 中,我们把 UI 界面分解成了一个个的组件,每个组件都是一个独立的模块,可以复用、组合,形成更为复杂的界面。这种组件化开发思想让我们的代码更为模块化、可维护性更好、可复用性更高。

下面是一个 React 组件的示例代码:

import React from 'react';

class Example extends React.Component {
  render() {
    return (
      <div>
        <h1>{this.props.title}</h1>
        <p>{this.props.content}</p>
      </div>
    );
  }
}

export default Example;

可以看到,我们用类的形式定义了一个组件 Example,这个组件有两个属性 title 和 content,用来展示标题和内容。

2. JSX 语法

在 React 中,我们使用了一种名叫 JSX 的语法,这种语法结合了 JavaScript 和 HTML 的特点,让我们可以在 JavaScript 中编写 HTML 内容。

这种语法看起来非常奇怪,但是却非常有效,可以让我们更快速、更方便地编写 UI 界面。

下面是一个用 JSX 编写的组件代码:

import React from 'react';

class Example extends React.Component {
  render() {
    return (
      <div>
        <h1>{this.props.title}</h1>
        <p>{this.props.content}</p>
      </div>
    );
  }
}

export default Example;

可以看到,我们在 render 方法中用了类似 HTML 的语法来构造 UI 界面。

3. 虚拟 DOM

React 中的一大特点就是虚拟 DOM,它可以让我们更快速、更高效地操作 UI 界面。

在传统的 DOM 操作中,每次修改 DOM 都要重新计算布局和渲染,这个过程非常耗时。而在 React 中,我们使用了虚拟 DOM,我们先修改虚拟 DOM,然后再进行一次比较,最终只修改变化的部分。这个过程可以让我们更快速地更新 UI 界面。

4. 单向数据流

在 React 中,数据的流动是单向的,从父组件传递给子组件,子组件不能修改父组件的数据,只能通过 props 属性来获取数据。这种单向数据流可以让我们更好地管理数据,更好地维护代码。

5. 生命周期方法

在 React 组件中,有多个生命周期方法可以让我们在组件的不同阶段执行不同的操作。

下面是一个简单的生命周期方法示例:

import React from 'react';

class Example extends React.Component {
  constructor(props) {
    super(props);
    console.log('constructor');
  }

  componentDidMount() {
    console.log('componentDidMount');
  }

  componentWillUnmount() {
    console.log('componentWillUnmount');
  }

  render() {
    return (
      <div>
        <h1>{this.props.title}</h1>
        <p>{this.props.content}</p>
      </div>
    );
  }
}

export default Example;

在这个组件中,我们定义了三个生命周期方法 constructor、componentDidMount、componentWillUnmount,分别在组件的创建、挂载、卸载时执行不同的操作。

总结

React 和普通 JavaScript 相比,有很多不同的地方,包括组件化开发思想、JSX 语法、虚拟 DOM、单向数据流、生命周期方法等。这些特点都让 React 成为了一个非常优秀的 JavaScript 框架,让我们的前端开发更加高效、更加舒适。