react基本使用及其安装

news/2024/7/19 13:52:08 标签: react, js

介绍描述

  1. 用于动态构建用户界面的 JavaScript 库(只关注于视图)
  2. 由Facebook开源

React的特点

  1. 声明式编码
  2. 组件化编码
  3. React Native 编写原生应用
  4. 高效(优秀的Diffing算法)

命令式编程 和 声明式编程

  • 告诉计算机怎么做(How) - 过程
  • 告诉计算机我们要什么(What) - 结果

如何使用 React

基于浏览器的模式

  • React.js 提供 React.js 核心功能代码,如:虚拟 dom,组件
    • React.createElement(type,props,children);
  • ReactDOM 提供了与浏览器交互的 DOM 功能,如:dom 渲染
    • ReactDOM.render(element, container[, callback])
      • element:要渲染的内容
      • container:要渲染的内容存放容器
      • callback:渲染后的回调函数

babel

babel-standalone.js:在浏览器中处理 JSX

  1. 浏览器不能直接解析JSX代码, 需要babel转译为纯JS的代码才能运行
  2. 只要用了JSX,都要加上type=“text/babel”, 声明需要babel来处理

效果图:

在这里插入图片描述

React高效的原因

  1. 使用虚拟(virtual)DOM, 不总是直接操作页面真实DOM。
  2. DOM Diffing算法, 最小化页面重绘。

在使用react 时需要引入核心模块

  <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
  //React核心库。
  <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
  //提供操作DOM的react扩展库。
  <script crossorigin src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js"></script>
  //解析JSX语法代码转为JS代码的库



  

react_54">react基本代码效果图

在这里插入图片描述
JSX 是一个基于 JavaScript + XML 的一个扩展语法,本质是React.createElement(component, props, …children)方法的语法糖

- 它可以作为值使用
- 它并不是字符串
- 它也不是HTML
- 它可以配合JavaScript 表达式一起使用

创建虚拟DOM的两种方式

  1. 纯JS方式(一般不用)
  2. JSX方式

虚拟DOM与真实DOM

  1. React提供了一些API来创建一种 “特别” 的一般js对象
     const VDOM = React.createElement(‘xx’,{id:‘xx’},‘xx’)
     上面创建的就是一个简单的虚拟DOM对象
  2. 虚拟DOM对象最终都会被React转换为真实的DOM
  3. 我们编码时基本只需要操作react的虚拟DOM相关数据, react会转换为真实DOM变化而更新界。

插值表达式

在 JXS 中可以使用 {表达式} 嵌入表达式

表达式:产生值的一组代码的集合
在这里插入图片描述

注意:

vue使用两个花括号解析变量,react只用一个花括号解析变量

列表渲染

列表渲染(类似于vue里面的v-for)

  • 数组
  • 对象
    扩展:虚拟 DOM (virtualDOM) 和 diff

效果图

在这里插入图片描述
条件渲染

  • 三元运算符
  • 与或运算符

效果图

在这里插入图片描述

在属性上使用 表达式

JSX 中的表达式也可以使用在属性上,但是使用的时候需要注意

  • 当在属性中使用 {} 的时候,不要使用引号包含

这个是react的基本语法

下面我们来说一下react的项目安装及其启动

  1. npm i -g create-react-app 全局安装react,注意是安装不是创建项目

  2. yarn global add create-react-app

  3. cnpm i -g create-react-app

大家可以根据自己的需求进行安装

创建项目的命令

  • create-react-app <项目名称>
  • npx create-react-app <项目名称>

安装项目以后使用npm start进行启动项目

启动项目成功效果图

在这里插入图片描述

重点报错

如果项目使用npm start 报错的话输入npm run eject,以后再使用npm start启动项目

总结:

今天主要学习了react的基本语法,及其基本项目安装,react相比vue更加复杂一点,但比vue更加灵活,但有一点是react创建项目时更加复杂,但更加容易报错,比如我上面说的那个报错,恐怕很多人都会遇到,希望大家在用到的时候一定要注意

最后作者创作不易,如果文章对你有帮助的话,记得留下你的点赞和关注呦


http://www.niftyadmin.cn/n/855142.html

相关文章

form表单的input上传文件

在这次的一个小项目中用到了文件的上传&#xff0c;在之前我对form表单的认知还只是发送用户名和密码。行吧&#xff0c;既然用到了那就硬着头皮上咯。 使用 首先文件的上传需要一个typefile的input。它的意义就是上传文件&#xff0c;图片&#xff0c;音频&#xff0c;视频都…

关于ICMP不可达报文

分析一种ICMP差错报文&#xff0c;即端口不可达报文&#xff0c;它是ICMP目的不可到达报文中的一种&#xff0c;以此来看一看ICMP差错报文中所附加的信息。UDP的规则之一是&#xff0c;如果收到一份UDP数据报而目的端口与某个正在使用的进程不相符&#xff0c;那么UDP返回一个I…

react创建项目后使用npm start启动报错解决方案

如果项目使用npm start 报错的话,进入到项目目录后,输入npm run eject,以后再使用npm start启动项目,就解决了,最后附一张成功效果图

图像识别动作判断_重庆理工学生“攻陷”图像识别技术,AI安全问题再引热议!...

随着人脸识别、动作识别、货物识别、图像识别等应用场景的出现&#xff0c;AI与安全结合的用途越来越广泛。与此同时&#xff0c;这一新兴技术面临的安全问题也逐渐浮出水面&#xff0c;引起社会的广泛关注。近日&#xff0c;由阿里和清华大学联合举办的“安全AI挑战者”比赛结…

2020十四周学习生活小总结

多灾2020已经开始了最后一个月了&#xff0c;希望最后一个月各方面都能美好的结束。 学习上 视频教学的网站已经有了雏形了&#xff0c;后台管理系统调试完成。现在在一起写前台的页面。前台页面之间的联系性太强了&#xff0c;以至于分出不同的模块之后还会互相造成影响。刚…

mybatis list 对象 foreach_Mybatis_day04:动态sql

动态sql通过mybatis提供的各种标签方法实现动态拼接sql。Ifselect * from userwhere 11and id#{id}and username like %${username}%注意要做不等于空字符串校验。Where上边的sql也可以改为&#xff1a;select * from userand id#{id}and username like %${username}%可以自动处…

type=file的input的样式修改+上传后预览图片

前面的文章介绍过typefile的input&#xff0c;但是有没有发现这玩意是真的丑。 而且它的样式直接是修改不了的&#xff0c;因此需要一些巧方法来更改 1. 2. 上两个都是改过之后的效果&#xff0c;现在这整张图片或者下面那个按钮就是那个表单项。当然可以修改为更加高大上的…

http 直接显示目录下文件_Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux...

2020年第一波薅当当网羊毛的机会&#xff0c;别错过&#xff01;晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 微软&#xff0c;致力于做最好的Linux发行版。今天&#xff0c;安装Windows 10测试版本号19603的用户发现&#xff0c;系统里WSL (Windows中的Linux子系统…