号称前端第一框架的React !

在现在这个超卷的社会,企业对计算机开发者的技术要求越来越高,这让开发者不得不频繁的巩固加学习新的技术,作为前端开发者,精通Vue框架的开发,可以让你找到一个不错的工作,如果能够把React玩的也很溜,那么就可以升职加薪了!哈哈哈哈,让我们一起朝着精通Vue和React去学习!

什么是React

React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发并维护,首次在 2013 年 5 月作为开源项目发布。React 最初设计用于创建快速且响应式的 Web 应用程序前端,但随着生态系统的发展,它也被广泛应用于构建移动应用、桌面应用甚至服务器端渲染。

React 的核心特性包括:

  1. 组件化: dom 编程已过去,性能不好,而 React 它强调组件化的开发方式,开发者可以将 UI 分解为独立、可复用的组件。每个组件负责单一功能,并可以通过属性(props)和状态(state)来控制其行为和显示。
  2. 虚拟 DOM: React 使用虚拟 DOM 技术来提高渲染效率。当组件的状态或属性发生变化时,界面会自动更新,React 会计算出新的虚拟 DOM 树,并与之前的树进行比较,仅更新必要的部分(属于响应式编程),从而减少浏览器重绘和布局的成本。
  3. 声明式编程: React 鼓励声明式的编码风格,即描述你希望 UI 看起来是什么样子,而不是如何通过一系列指令来实现变化。这使得代码更易于理解和维护。
  4. JSX: React 使用一种叫做 JSX 的语法扩展,它允许在 JavaScript 中内联 HTML 标签,使构建组件更加直观。

React是来自FaceBook,特别适合中大型项目开发,但是相比于Vue,它的学习成本高,但是也深受前端开发者的喜爱,有人认为React是前端第一框架,有人认为Vue更优雅,但是!!!小孩子才做选择题,咱们两个都学!

创建React

  1. 初始化一个项目:

    css 复制代码
    npm i -g create-react-app

    react/vue 是企业级应用,create-react-app 是来自Facebook官方推出的项目脚手架(可以快速开发), -g 是全局安装,我们可以通过 npm config ls 打印所有配置信息,被安装到了你node的文件下了。

  2. 输入指令create-react-app react-test创建React文件输入文件名(注意不能大写):

    • 当出现这个的时候,意味着你的文件创建完成了。
  3. 启动React

    当出现这个页面,你的React就正式启动了。

除了使用create-react-app,还可以使用vite创建React项目,也可以创建Vue项目,而这个vite是Vue.js的创建者尤雨溪开发的,它是一个现代化的前端构建工具和开发服务器。提供一个快速且高效的工作流程,特别是在开发阶段,通过利用现代浏览器对 ES 模块(ESM)的支持来实现这一点。

下面我们使用Vite可以更快的创建一个React:

  1. 输入指令npm init vite,创建React项目文件名:

  2. 使用上下按键移动,指定创建React项目:

    • 选择JavaScript开发
  3. 然后根据提示,启动!

    npm install是下载项目的依赖,package.json内是React项目所需的依赖包和版本号,而package-lock.json文件则是依赖的版本记录。

    输入npm run dev 启动React。

项目结构

  • src 开发目录,代码的主战场
    1. main.jsx 这个文件称为入口文件,项目的单点入口。
      • react.creatElement 创建节点
      • root.render 挂载到root节点
    2. index.css 是全局样式文件。
  • node_modules 存放的依赖包
  • package.json 项目描述文件
  • public 静态资源目录
  • index.html 首页 提供html模板以及 #root 挂载点

自定义组件挂载

组件 component就像拼乐高

  • 根组件 App
    1. JSX 里用html标签的方式开插入
    2. 标签不是html内置标签,而是组件本身的名字
  • 子组件
    • 旧开发打理的是真实DOM树
    • 组件树(React 组件树)子组件

生成的入口文件长这样,他会在index.htmlDOM树找到ID为root的挂载点,然后挂载一个组件名为App的组件。

  1. 如何自定义挂载组件呢!在生成的 src目录下 - > 删除assets文件、清空index.css全局样式,清空App.jsx

目录结构:

  1. index.css全局样式加入如下代码:
css 复制代码
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;   
}

至于为什么这样做,我们后面在讲浏览器优化的时候会提到的,这里通常使用的*通配符比较消耗性能,做了很多没必要的匹配。

旧开发的组件创建:

这里你就可以看到文字靠边了,页面自带的边距被清除, 而且被挂载的element2元素也被显示了,ReacteDOM调用的方法就是返回index.html的挂载点,然后将挂载点交给React接管,使root能够操作挂载点了。

使用es6的新方法:

  • es6 的功能:
    • class 让js成为大型企业开发语言,传统的面向对象,设计模式好用起来 原型面向对象,其它开发者不太熟悉,class 只是语法糖, 底层逻辑还是prototype
    • extends 轻松实现继承,面向对象层次更加细腻
    • 封装、继承、多态
    • 以react 源码为例,Component 组件基类 constructor super(props) 基类构造函数先执行 构造自己的状态 必须重写render 方法 返回组件的JSX

我们还是使用生成的入口文件:

对App组件进行修改如下:

scala 复制代码
import { Component } from "react";

class App extends Component {
  constructor(props) {
    super(props);
  }
  render() {
    return (
      <div>
        <h1>Hello World</h1>
      </div>
    );
  }
}

export default App;

一样的可以实现自定义组件的挂载,是不是觉得这样更加优雅呢!!反正我是觉得这个更好用的。

好了,今天的内容就分享到这吧,后面会陆续发出Vue实战和React实战的小demo,想要学Vue或者React的jym快行动起来吧,点点关注不迷路哦!

相关推荐
蜗牛快跑21310 分钟前
面向对象编程 vs 函数式编程
前端·函数式编程·面向对象编程
Dread_lxy11 分钟前
vue 依赖注入(Provide、Inject )和混入(mixins)
前端·javascript·vue.js
涔溪1 小时前
Ecmascript(ES)标准
前端·elasticsearch·ecmascript
榴莲千丞1 小时前
第8章利用CSS制作导航菜单
前端·css
奔跑草-1 小时前
【前端】深入浅出 - TypeScript 的详细讲解
前端·javascript·react.js·typescript
羡与1 小时前
echarts-gl 3D柱状图配置
前端·javascript·echarts
guokanglun1 小时前
CSS样式实现3D效果
前端·css·3d
咔咔库奇1 小时前
ES6进阶知识一
前端·ecmascript·es6
渗透测试老鸟-九青2 小时前
通过投毒Bingbot索引挖掘必应中的存储型XSS
服务器·前端·javascript·安全·web安全·缓存·xss
龙猫蓝图2 小时前
vue el-date-picker 日期选择器禁用失效问题
前端·javascript·vue.js