前端三大主流框架:React、Vue、Angular

文章目录

一、React、Vue、Angular简介

前端三大主流框架分别是Angular、React和Vue。以下是这三个框架的详细概述:

  1. Angular
  • Angular原名AngularJS,诞生于2009年,由Google开发并维护。
  • 它是一个完整的框架,提供了数据绑定、组件化、路由、依赖注入等功能。
  • Angular采用了TypeScript作为开发语言,它是JavaScript的一个超集,提供了静态类型检查和更强大的面向对象编程能力。
  • Angular的特点包括功能强大、完整且稳定,适用于开发大型和复杂的Web应用。
  • 它提供了很多内置的功能和工具,如模板语法、表单验证、HTTP模块等,帮助开发者更快速地构建高质量的Web应用。
  • Angular支持移动端开发,可以使用Ionic等工具将Web应用打包成原生应用。
  1. React
  • React是由Facebook开发并开源的一个JavaScript库,正式版推出于2013年。
  • 它专注于构建用户界面,并以其虚拟文档对象模型(Virtual DOM)和高效的diff算法而闻名。
  • React的组件化开发模式允许开发者将UI和业务逻辑分离,提高代码的复用性和可维护性。
  • React对新开发人员来说较为友好,并提供了JSX语法,这是一种混合HTML和JavaScript的语言,使编写React组件更加容易和直观。
  • React的社区支持庞大,可以找到大量的文档、教程和工具来帮助开发者解决问题。
  1. Vue
  • Vue是一个由华人开发者尤雨溪创造的前端框架,正式推出于2014年。
  • Vue借鉴了Angular和React的特点,如Virtual DOM、双向数据绑定、diff算法、响应式属性、组件化开发等,并进行了相关优化,使其使用更加方便和容易上手。
  • Vue以其简洁易用和高效的特点而受到开发者的喜爱,尤其适合初学者。
  • Vue也支持组件化开发,允许开发者将UI和业务逻辑分离,提高代码的可复用性和可维护性。

二、React初始化案例

React详细介绍

React是一个用于构建用户界面的JavaScript库,它起源于Facebook的内部项目。React的出现是因为Facebook对市场上所有JavaScript MVC框架都不满意,决定自行开发一套,用于架设Instagram的网站,并于2013年5月开源。React主要用于构建UI,可以在React里传递多种类型的参数,如声明代码,帮助开发者渲染出UI,也可以是静态的HTML DOM元素,也可以传递动态变量,甚至是可交互的应用组件。

React的特点包括:

  1. 声明式设计:React使创建交互式UI变得轻而易举。为应用的每一个状态设计简洁的视图,当数据变动时,React能高效更新并渲染合适的组件。
  2. 组件化:构建管理自身状态的封装组件,然后对其组合以构成复杂的UI。
  3. 高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。
  4. 灵活:无论使用什么技术栈,React都可以方便地引入开发新功能,而无需重写现有代码。

React案例代码

  1. Hello World示例代码

这是一个简单的React组件示例,用于显示"Hello, World!"文本。

javascript 复制代码
import React from 'react';
import ReactDOM from 'react-dom';

class HelloWorld extends React.Component {
  render() {
    return <h1>Hello, World!</h1>;
  }
}

ReactDOM.render(<HelloWorld />, document.getElementById('root'));

这段代码通过React的ReactDOM.render方法将<HelloWorld />组件渲染到<div id="root"></div>元素中。组件的render方法返回一个包含<h1>标签的JSX表达式。

  1. State和Props示例代码

这个示例展示了如何在React组件中使用状态和属性(state and props)。

javascript 复制代码
import React from 'react';
import ReactDOM from 'react-dom';

class Counter extends React.Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }

  increment() {
    this.setState({ count: this.state.count + 1 });
  }

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={() => this.increment()}>Increment</button>
      </div>
    );
  }
}

ReactDOM.render(<Counter />, document.getElementById('root'));

在这个示例中,我们创建了一个名为Counter的React组件。该组件具有一个状态count,并通过increment方法增加计数。在组件的render方法中,我们显示当前计数并提供一个按钮来增加计数。当用户点击按钮时,会调用increment方法并更新状态,从而触发组件的重新渲染并显示更新后的计数。

三、Vue初始化案例

Vue.js 详细介绍

Vue.js 是一款构建用户界面的渐进式框架。与其他大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或已有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也能为复杂的单页应用(SPA)提供驱动。

Vue.js 的主要特点包括:

  1. 组件化:Vue 允许你以可复用的方式构建大型应用。在 Vue 中,一个组件本质上是一个拥有预定义选项的一个 Vue 实例。

  2. 响应式数据绑定:Vue 的核心库只关注视图层,它采用简洁的模板语法,将 DOM 操作与数据操作进行绑定,使得数据变化时视图能够自动更新。

  3. 指令 :Vue 提供了一系列内建的指令,如 v-ifv-forv-bind 等,这些指令为模板提供了强大的功能。

  4. 计算属性和侦听器:Vue 提供了计算属性和侦听器,用于处理复杂逻辑和响应数据变化。

  5. 可定制的过渡和动画:Vue 在插入、更新或移除 DOM 时,提供多种过渡效果。

  6. 路由和状态管理:Vue 可以与 Vue Router 和 Vuex 这样的库一起使用,以构建复杂的单页应用。

  7. 轻量级和灵活性:Vue 相对于其他大型框架(如 Angular 或 React)来说更轻量级,这使得它更加灵活和易于使用。

Vue.js 案例代码

以下是一个简单的 Vue.js 示例,它展示了如何使用 Vue 创建一个计数器:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue.js Counter Example</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>

<div id="app">
    <p>{{ message }}</p>
    <button @click="increment">Increment</button>
    <p>Count: {{ count }}</p>
</div>

<script>
new Vue({
    el: '#app',
    data: {
        message: 'Hello Vue!',
        count: 0
    },
    methods: {
        increment: function() {
            this.count++;
        }
    }
});
</script>

</body>
</html>

在这个示例中,我们创建了一个新的 Vue 实例,并将其挂载到 id 为 app 的元素上。在 Vue 实例的 data 对象中,我们定义了 messagecount 两个响应式数据属性。我们还定义了一个名为 increment 的方法,该方法会在每次点击按钮时被调用,并使 count 的值递增。在模板中,我们使用双大括号插值来显示 messagecount 的值,并使用 @click 指令来监听按钮的点击事件。

四、Angular初始化案例

Angular 详细介绍

Angular 是一个由 Google 开发和维护的开源前端框架,用于构建单页应用(SPA)和跨平台应用。Angular 提供了一个结构化的开发框架,它整合了多种技术,包括 TypeScript、HTML、CSS 和其他库,以简化应用程序的开发过程。Angular 强调组件化、模块化、依赖注入和响应式编程等核心概念。

Angular 的主要特点包括:

  1. 组件化:Angular 应用是由一系列组件组成的,每个组件控制屏幕上的一小块区域。组件是 Angular 应用的构建块,它们封装了相关的 HTML、CSS 和 TypeScript 代码。

  2. TypeScript 支持:Angular 使用 TypeScript 作为主要开发语言,它提供了静态类型检查、面向对象编程特性和 ES6+ 功能。

  3. 双向数据绑定:Angular 提供了强大的数据绑定功能,可以自动更新视图以反映模型中的更改,并在模型更改时自动更新视图。

  4. 依赖注入:Angular 使用依赖注入(DI)来管理组件之间的依赖关系,使得代码更易于测试和维护。

  5. 路由:Angular 提供了强大的路由功能,允许你定义不同的视图和它们之间的导航路径。

  6. 表单验证:Angular 提供了丰富的表单验证功能,支持模板驱动表单和响应式表单。

  7. 指令和管道:Angular 提供了许多内建的指令和管道,用于在模板中执行复杂的操作和数据转换。

  8. 模块化:Angular 应用被组织成模块,每个模块包含了一组相关的组件、服务和指令。

Angular 案例代码

以下是一个简单的 Angular 示例,它展示了如何创建一个计数器组件:

首先,你需要确保你的项目已经通过 Angular CLI 创建并设置好了。如果你还没有创建项目,可以使用以下命令创建一个新的 Angular 项目:

bash 复制代码
ng new my-angular-app
cd my-angular-app

然后,你可以创建一个新的计数器组件:

bash 复制代码
ng generate component counter

接下来,编辑 counter 组件的 TypeScript 文件(counter.component.ts)和 HTML 模板文件(counter.component.html)。

counter.component.ts:

typescript 复制代码
import { Component } from '@angular/core';

@Component({
  selector: 'app-counter',
  templateUrl: './counter.component.html',
  styleUrls: ['./counter.component.css']
})
export class CounterComponent {
  count = 0;

  increment() {
    this.count++;
  }

  decrement() {
    this.count--;
  }
}

counter.component.html:

html 复制代码
<p>Count: {{ count }}</p>
<button (click)="increment()">Increment</button>
<button (click)="decrement()">Decrement</button>

app.module.ts 中,确保你已经将 CounterComponent 添加到 declarations 数组中:

typescript 复制代码
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { CounterComponent } from './counter/counter.component';

@NgModule({
  declarations: [
    AppComponent,
    CounterComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

最后,在 app.component.html 中使用 app-counter 选择器来包含你的计数器组件:

html 复制代码
<app-counter></app-counter>

现在,当你运行你的 Angular 应用时(例如,使用 ng serve 命令),你应该能在浏览器中看到一个计数器,其中包含两个按钮,一个用于增加计数,另一个用于减少计数。

五、相关链接

  1. Vue3官方地址
  2. Vue3中文文档
  3. 「Vue3系列」Vue3简介及安装
  4. 「Vue3系列」Vue3起步/创建项目
  5. 「Vue3系列」Vue3指令
  6. 「Vue3系列」Vue3 模板语法
  7. 「Vue3系列」Vue3 条件语句/循环语句
  8. 「Vue3系列」Vue3 组件
  9. 「Vue3系列」Vue3 计算属性(computed)、监听属性(watch)
  10. 「Vue3系列」Vue3 样式绑定
  11. 「Vue3系列」Vue3 事件处理
  12. 「vue3系列」Vue3 表单
相关推荐
一ge科研小菜鸡1 小时前
React 前端框架实战教程
前端框架
阿芯爱编程3 小时前
vue3 react区别
前端·react.js·前端框架
疯狂小料5 小时前
React 路由导航与传参详解
前端·react.js·前端框架
索然无味io15 小时前
组件框架漏洞
前端·笔记·学习·安全·web安全·网络安全·前端框架
不叫猫先生1 天前
【React】PureComponent 和 Component 的区别
前端·javascript·react.js·前端框架
GISer_Jing1 天前
前端(数据可视化低代码平台)&AI
前端·前端框架·aigc
至尊鸡1 天前
今天也是记录小程序进展的一天(破晓时8)
前端·科技·小程序·前端框架
资深前端之路1 天前
react面试题二
前端·react.js·前端框架
2301_818732062 天前
用layui表单,前端页面的样式正常显示,但是表格内无数据显示(数据库连接和获取数据无问题)——已经解决
java·前端·javascript·前端框架·layui·intellij idea
崽崽的谷雨2 天前
Fullcalendar @fullcalendar/react 样式错乱丢失问题和导致页面卡顿崩溃问题
前端·react.js·前端框架