当前位置:网站首页 > React Native移动开发 > 正文

react入门到精通(react 入门到精通)



React这个项目是facebook开源出来的一个优秀前端库。官网将React称为库(jquery库),React默认提供的只是前端的页面更新方案。并没有提供完整的前端所有核心内容。比如路由、状态机。这些都需要我们自己搭建。在2013年5月开源出来。提出了很多概念在当时都是比较前卫的思想。组件化开发、虚拟dom加载。React开发有两个分支:

学习:react.nodejs.cn/优势:

你们可以基于脚手架工具。快速搭建一个项目。

(1)创建项目

脚手架工具的文档:cra.nodejs.cn/docs/gettin…

这种方式来创建项目,本地无需安装脚手架。就可以直接创建项目

临时在本地安装一个脚手架工具,创建项目,创建完成后,删除脚手架

在本地安装好脚手架,直接用本地脚手架搭建项目。这种方式我们不推荐。

创建项目,项目名字不能出现大写字母,不能中文

安装yarn包管理器。默认提示你采用yarn启动项目

npm来启动项目

(3)改造项目

src目录下面只留

组件化思想:针对页面UI部分,进行了页面的拆分。将公共的页面模板拆分,最后在自己组合在一起。模块化思想:针对JS脚本设计,将代码进行模块拆分。减少当前脚本体积,提高复用性。比如很多的工具提取出来。

a.js

b.js

最早解决思路

采用IIFE来解决问题。

a.js

b.js

ES6这个版本,官方也推出了模块化思想

工程化思想:以前我们项目在没有脚手架搭建的时候,都是自己下载包。自己来进行代码压缩混淆。基于webpack或者vite这种打包工具。你们直接依赖这些工具完成前端项目构建,打包、部署

React中组件有两种

在目前项目开发过程中,两种组件都会接触到。在React中我们组件后缀有两种格式,在里面写jsx代码,后缀支持的一种格式安装插件

创建组件的时候

:创建一个类组件的模板

:创建一个函数组件的的模块

类组件的代码

React设计思想:将JS+HTML模板统一放在一个文件中,写完了代码后。JS 和HTML分开解析。最后html+css+js

原生JS代码

函数组件的代码

组件本身设计的一种模块,可以将代码抽取出来。再React中就是采用JSX来作为组件的语法

JSX = JavaScript + XML

JavaScript就是基于ES5ES6引入过来规范。

XML:标签语言,表示组件中所有标签模板。代码解析的时候。XML标签就是转化HTML标记了。

接下来你再组件中写的所有代码都是JSX代码。浏览器无法直接解析。

在启动项目的时候

webpack就会开始打包项目。babel这个插件,将jsx代码转化为浏览器能是被的js代码。最后才浏览器运行

每个组件都要求,必须提供根标签。否则报错

使用这个来作为根标签,最终页面不会渲染出来。解决报错问题

总结:

在JSX中动态绑定一个属性,我们需要

在JSX中支持两种样式设计

内联样式:JSX中的样式已经经过封装过了。

因为style对象可以接受多个css样式,所以我们提供的是一个对象,定义很多样式

外部样式:

在styles文件夹下面创建css文件header.css

JSX代码

不管在哪个组件中,一旦名字一致,相互影响为了解决这个问题,React提出了一个概念。模块化样式。开发步骤 styles文件夹下面创建文件名字 tabA.module.css

组件中使用

Vue中组件内部数据使用data来定义。只要放在data中,这个数据响应式变化。一旦发生数据更新,页面也会更新

在React中组件内部数据采用state来定义

语法一:在构造器中定义state变量

页面上使用这个变量的时候

为了更加优化代码,一般会在render函数里面解构,在去使用

语法二:无需再构造器中定义

(6)组件事件绑定基本语法

React标签上面事件都被封装了一次。JSX的规则

命名规范采用驼峰命名方式

Vue

事件参数传递

绑定事件,提供事件函数,如果这个函数没有加括号。将函数地址放在这个模板中。

点击li元素,找到这个函数,并执行

对于JSX来说,立即调用check这个函数。

解决这个问题方案:

给onClick这个事件绑定一个箭头函数,再这个箭头函数里面调用check函数。只有事件被触发,箭头函数调用,check才会执行。传递参数过去

如果你函数是普通函数,默认拿到this结果为undefined页面中绑定事件,节点来触发事件。React底层处理过,并不会直接返回节点。

如果函数是普通函数,绑定事件bind来改变this的指向,函数里面this指向当前组件。

总结:以后再React开发过程中,能用箭头函数就直接用箭头函数。

只要有事件绑定,那一定会有event事件对象产生。默认绑定不传递参数的时候,事件函数第一个参数就是event对象

如果你的事件函数要传递参数

遇到要传递参数的时候,外层箭头函数才是事件绑定的函数。传递给内部的函数使用

(7)组件数据更新

组件内部数据state来定义。直接修改state的值,页面并不会检测更新

当React检测到调用这个函数,将原来值进行替换。render函数重新调用一次

当我们进行数据修改的时候,setState里面传递的新的对象,修改的值和会原来state的值进行合并。不会覆盖

更新规则

setState在更新数据的时候。合并操作。并不是覆盖操作

修改的时候,指定了修改的变量。state原来的值没有变化,并不会被覆盖。

异步更新

setState这个函数,可以更新state的数据,并且调用render实现页面刷新。

但是本身是一个异步任务。无法立即获取修改的结果

为了性能考虑,设计的方案,不管是Vue还是React,我们都是异步更新

为了能获取更新过后的结果,我们提供回调函数

合并更新

setState一旦调用,数据发生更新,render就会被执行

一次性执行多个二setState,每个更新任务,都会放在队列中。

队列中任务会取出来进行合并,当发现多个任务的时候。后进入队列中将内容和前面任务合并了。

到此这篇react入门到精通(react 入门到精通)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • react组件三大属性(react组件定义)2025-03-12 16:00:10
  • 给移动硬盘设置密码(给移动硬盘设置密码怎么弄)2025-03-12 16:00:10
  • react组件constructor(react组件间传值的方法)2025-03-12 16:00:10
  • react组件调用方法(react 常用组件库)2025-03-12 16:00:10
  • non—native翻译(non-caring翻译)2025-03-12 16:00:10
  • react 组件(react组件间通信)2025-03-12 16:00:10
  • 移动硬盘上怎么设置密码(移动硬盘怎么设置密码win10)2025-03-12 16:00:10
  • react 组件(react组件通信)2025-03-12 16:00:10
  • keil3破解安装教程(keil μvision4及破解版的安装过程?)2025-03-12 16:00:10
  • 蓝牙地址是什么意思(当前移动设备的蓝牙地址是什么意思)2025-03-12 16:00:10
  • 全屏图片