文章目录

  • 一、关于react
    • 1.1 react相关文档
    • 1.2 react是什么?
    • 1.3 react的特点?
  • 二、react的脚手架
  • 三、react元素的创建
    • 练习
  • 四、JSX
    • 4.1 JSX是什么
    • 4.2 JSX的使用
    • 4.3 JSX中使用JavaScript表达式
      • *4.3.1 可以访问对象的属性*
      • *4.3.2 可以访问数组下标*
      • *4.3.3 可以调用方法*
      • *4.3.4 可以使用三元表达式*
    • 4.4 条件渲染
      • *4.4.1 if/else*
      • *4.4.2 三元表达式*
      • *4.4.3 &&运算符*
    • 4.5 列表渲染
    • 4.5 JSX注意事项

一、关于react

1.1 react相关文档

React文档 点击跳转
React中文文档 点击跳转

1.2 react是什么?

React 是一个声明式,高效且灵活的用于构建用户界面的 JavaScript 库。使用 React 可以将一些简短、独立的代码片段组合成复杂的 UI 界面,这些代码片段被称作“组件”。
简单来说:React 是一个用于构建用户界面(HTML 页面)的 JavaScript 库

1.3 react的特点?

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

二、react的脚手架

FaceBook的React团队官方出的一个构建React应用的脚手架工具(create react app
命令:npx create-react-app 文件名
运行:npm start


三、react元素的创建

通过React.createElement进行创建

React.createElement('html元素名',{属性1:属性值1,属性2:属性值2...},子元素...)

在index.js 中

// 导入react和react-dom
import React from 'react'
import ReactDOM from 'react-dom'// 创建元素
const title = React.createElement('h1', null, 'hello react')// 渲染react元素
ReactDOM.render(title, document.getElementById('root'))

页面显示效果:

练习

创建如下图所示的一个结构

const li = React.createElement('li', null, 'li1')
const li1 = React.createElement('li', null, 'li2')
const ul = React.createElement('ul', null, li, li1)
// 渲染react元素
ReactDOM.render(ul, document.getElementById('root'))

四、JSX

4.1 JSX是什么

通过上述对react元素的创建,我们发现,createElement 的问题,繁琐、可读性差
对于这个问题,我们可以通过JSX来解决,JSXJavaScript XML的简写,表示了在Javascript代码中写XML(HTML)格式的代码(与HTMl相同)。 JSX是react的核心内容

4.2 JSX的使用

  1. 使用jsx创建react元素
  2. 将react元素渲染到页面中
import ReactDOM from 'react-dom'//react17版本之后,使用jsx不需要额外导入React
const title = <h1>JSX的使用</h1>
ReactDOM.render(title, document.getElementById('root'))

页面显示效果:

4.3 JSX中使用JavaScript表达式

js表达式,像访问数组下标arr[1]、访问对象obj.name等都属于js表达式
下面是针对各种情况的一个使用:

4.3.1 可以访问对象的属性

const obj = {name: '对象属性的访问'
}
const div= (<h1>js表达式:{obj.name}</h1>
)

页面显示效果:

4.3.2 可以访问数组下标

const arr = ['数组1', '数组2']
const div = (<h1>js数组:{arr[1]}</h1>
)

页面显示效果:

4.3.3 可以调用方法

function fn () {return '方法'
}
const div = <h1>js方法:{fn()}</h1>
ReactDOM.render(div, document.getElementById('root'))

页面显示效果:

4.3.4 可以使用三元表达式

const num = 20
const div = (<h1>js三元表达式:{num >= 18 ? '是' : '否'}</h1>
)

页面显示效果:

4.4 条件渲染

条件渲染可以分为:三元表达式、if/else、&&运算符

4.4.1 if/else

const controll = false
const controllBoolean = () => {if (controll) {return <p>controll————true</p>} else {return <p>controll————false</p>}
}

4.4.2 三元表达式

const controll = false
const controllBoolean = () => {return controll ? (<p>controll——true</p>) : <p>controll——false</p>
}const div = <div>三元表达式:{controllBoolean()}</div>

页面显示效果:

4.4.3 &&运算符

const controll = false
const controllBoolean = () => {return controll && <p>controll——true</p>
}const div = <div>&&运算符:{controllBoolean()}</div>

4.5 列表渲染

在react对于列表的渲染,我们使用map方法

const list = [{ id: 1, name: 'list1' },{ id: 2, name: 'list2' },{ id: 3, name: 'list3' }
]const div = (<div><ul>{list.map(item => <li>{item.name}</li>)}</ul></div>
)

页面显示效果:

列表渲染时应该给重复渲染的元素添加key属性,key属性的值要保证唯一(key 值尽量避免使用 index 下标)

4.5 JSX注意事项

  1. JSX必须要有一个根节点, 如果没有根节点,可以使用<></>(幽灵节点)或者<React.Fragment></React.Fragment>
  2. 所有标签必须结束,如果是单标签可以使用/>结束
  3. JSX中语法更接近与JavaScript,属性名采用驼峰命名法
  4. JSX可以换行,如果JSX有多行,推荐使用()包裹JSX,防止 JS 自动插入分号的 bug

React入门基础+练习 (一)相关推荐

  1. React入门基础教程

    React入门基础教程 React 是什么? React 是一个声明式,高效且灵活的用于构建用户界面的 JavaScript 库.使用 React 可以将一些简短.独立的代码片段组合成复杂的 UI 界 ...

  2. Flux --gt; Redux --gt; Redux React 入门 基础实例教程

    本文的目的很简单,介绍Redux相关概念用法 及其在React项目中的基本使用 假设你会一些ES6.会一些React.有看过Redux相关的文章,这篇入门小文应该能帮助你理一下相关的知识 一般来说,推 ...

  3. React入门基础+练习(二)

    文章目录 一.组件创建 1.1 函数组件 1.2 类组件 二.组件区别 2.1 有状态和无状态组件 2.2 类组件的状态 三.事件处理 *3.1 注册事件* *3.2 事件对象* *3.3 this指 ...

  4. 坚如磐石的React.js基础:入门指南

    by Rajat Saxena 通过拉贾特·萨克森纳(Rajat Saxena) 坚如磐石的React.js基础:入门指南 (Rock Solid React.js Foundations: A Be ...

  5. 《慕课React入门》总结

    React 入门与实战 react组件 虚拟DOM的概念 这是React性能高效的核心算法 React为此引入了虚拟DOM(Virtual DOM)的机制.基于React进行开发时所有的DOM构造都是 ...

  6. React 入门手册

    大家好,我是若川.推荐这篇可收藏的React入门手册.也推荐之前一篇类似的文章<如何使用 React 和 React Hooks 创建一个天气应用>. 点击下方卡片关注我.加个星标 Rea ...

  7. 视频教程-2019 react入门至高阶实战,含react hooks-ReactJS

    2019 react入门至高阶实战,含react hooks 从事前端开发近5年时间,曾任职于丽珠集团等大型企业担任高级前端开发工程师职位,积累了很多大厂的前端开发经验. 目前处于创业期,正在筹备自己 ...

  8. GSAP动画库入门基础示例:心爱的小摩托

    大家好,在我们谈论网页动画时,我们第一时间会想到用jQuery的animate()方法或者CSS3的animation和transition.今天的这篇文章,我将给大家推荐另一个可选方案,一款专业的W ...

  9. React入门第一弹——为什么国内大厂更钟爱react框架?

    React 入门 React简介 为何国内大厂更多使用React? React是Facebook用来创建用户界面的JS库,在2013年开源的.React不是一个MVC框架,而是一个用于构建组件化UI的 ...

最新文章

  1. 如何读论文才不至于发疯?
  2. JS面向对象(二)——构造函数的继承
  3. delphi 生成 超大量xml_用OpenCV4实现图像的超分别率
  4. 罗永浩发文评《你好,李焕英》:一定要看!
  5. oracle sql within,Oracle SQL Model Clause
  6. matlab实现prim算法,Prim算法和Kruskal算法的Matlab实现
  7. latex 基本用法
  8. ogre的主要渲染流程(转)
  9. 日志打印longging模块(控制台和文件同时输出)
  10. MIUI系统刷第三方Recovery+Magisk
  11. 三角波的傅里叶变换对_傅里叶变换(二) 从傅里叶级数到傅里叶变换
  12. Java编程输出你的年龄和姓名
  13. C51与MDK共存 Keil5安装教程 WIN10 亲测可用
  14. 求出字符串中大写字母,小写字母和数字的个数
  15. [操作系统]进程同步 Reader-Writer问题 共享缓冲区问题 面包师问题 吸烟者问题
  16. 央视《对话》:家长课堂
  17. 图欧学习资源库 https://tuostudy.com/
  18. C/C++非专家级编程
  19. 如何用“底层逻辑“看透世界的底牌?| 刘润最新演讲-学习总结
  20. 时序优化方法和引起时序违例的若干问题

热门文章

  1. Jsrender初体验
  2. 转载--上下标等特殊符号的输入方法
  3. select框的text与value值的获取(实用版)
  4. Bailian2745 显示器【打印图案】
  5. sklearn 下的 ensemble learning
  6. 矩阵(二维数组)的性质在算法求解中的应用
  7. 机器学习基础(五十)—— Gini Impurity(基尼不纯度)与香浓熵(Shannon Entropy))
  8. utilities(C++)——单例(Singleton) (使用智能指针 shared_ptr)
  9. +0 ≠ -0:多出一个数的补码
  10. for里面嵌套if_求求你们了,别再写满屏的 if/ else 了!