IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 三大主流框架:React、Vue、Angular之React的学习笔记及总结:基础篇 -> 正文阅读

[JavaScript知识库]三大主流框架:React、Vue、Angular之React的学习笔记及总结:基础篇

三大主流框架:React、Vue、Angular之React的学习总结,基础篇。

React概述:

一个用于构建用户界面(前端HTML页面)的JavaScript库。主要用来写HTML页面或构建Web应用。在MVC中只负责视图的渲染。起源于Facebook的内部项目。

React特点:

声明式、组件化、一次学习,随处编写。

React的安装:

npm i react react-dom

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

使用步骤:

  1. 引入react和react-dom两个js文件:
<script src="./node_modules/react/umd/react.development.js"></script>
<script src="./node_modules/react-dom/umd/react-dom.development.js"></script>
  1. 创建React元素:

参数一:元素名称
参数二:元素属性
参数三:元素的子节点,可以有多个

const title = React.createElement('h1',null,'Hello React')
const title = React.createElement('p', {title:'我是标题',id:'p1'}, 'Hello React',React.createElement('span',null,'我是span节点'))
  1. 渲染React元素到页面中:

参数一:要渲染的React元素
参数二:寻找挂载点

<div id="root"></div>
 ReactDOM.render(title,document.getElementById('root'))
  • 初始案例完整展示:
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>React的学习</title>
</head>
<body>
    <div id="root"></div>
    <script src="./node_modules/react/umd/react.development.js"></script>
    <script src="./node_modules/react-dom/umd/react-dom.development.js"></script>
    <script>
        const title = React.createElement('h1',null,'Hello React')
        ReactDOM.render(title,document.getElementById('root'))
    </script>
</body>
</html>

在这里插入图片描述

React脚手架的意义:

1.脚手架是开发现代web应用的必备。
2.充分利用webpack、babel、eslint等工具辅助项目开发。
3.零配置,无需手动配置繁琐的工具即可使用。
4.关注业务,而不是工具配置。

使用React脚手架初始化项目,项目名称my-app:

  1. 初始化项目:

npx create-react-app my-app

在这里插入图片描述

当看到Happy hacking!的时候,项目部署完毕。

在这里插入图片描述
2. 启动项目,在项目根目录执行命令:

npm start
###进入项目命令:cd my-app,之后再执行:npm start

在这里插入图片描述
3. 展示如下页面,则部署过程正确:
在这里插入图片描述

在脚手架中使用React:

  1. 导入react和react-dom两个包。
import React from 'react'
import ReactDOM from 'react-dom'
  1. 调用React.createElement()方法创建react元素。
  2. 调用ReactDOM.render()方法渲染react元素到页面当中。
import React from 'react'
import ReactDOM from 'react-dom'

const title = React.createElement('h1',null,'Hello React !!!')
ReactDOM.render(title,document.getElementById('root'))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

React中的特色语法JSX:

不再推荐使用createElement()方法的原因:

  1. 繁琐不简洁。
  2. 不直观,无法一眼看出所描述的结构。
  3. 不雅观,用户体验不爽。

在这里插入图片描述

JSX简介:JSX是React的核心内容。

JSX是JavaScript XML的简写,表示在JavaScript代码中写XML (HTML)格式的代码。
优势:声明式语法更加直观、与HTML结构相同,降低了学习成本、提升开发效率。

JSX的基本使用:

使用步骤:

  1. 使用JSX语法创建react元素:
const title = <h1>Hello World</h1>
  1. 使用ReactDOM.render()方法渲染react元素到页面中:
ReactDOM.render(title,document.getElementById('root'))

在这里插入图片描述

注意点:
1.React元素的属性名使用驼峰命名法
2.特殊属性名:class–>className、for–>htmlFor、tabindex–>tabIndex
3.没有子节点的React元素可以使用/>直接结束。
4.推荐使用小括号包裹JSX,从而避免JS中的自动插入分号陷阱。

在这里插入图片描述

JSX中使用JavaScript表达式:(嵌入JS表达式)

1.数据存储在JS中。
2.语法:{JavaScript表达式}。
==================================
注意:是单大括号,不是双大括号!单大括号中可以使用任意的JavaScript表达式。
JSX自身也是JS表达式。
JS中的对象是一个例外,一般只会出线在style属性中。
不能在{}中出现语句(比如:if / for

在这里插入图片描述
在这里插入图片描述

import React from 'react';
import ReactDOM from 'react-dom';

const name = 'pwyx'
const sayHi = () => 'Hello,World' + ',' + name
const dv = <div>我是一个div</div>

const text = (
  <h1>
    {sayHi()}
    <p>
      	{3 > 5 ? '大于' : '小于等于'}
   	 </p>
    <p>
      	{dv}
    </p>
  </h1>
)

ReactDOM.render(text, document.getElementById('root'))

JSX的条件渲染:loading效果

import React from 'react';
import ReactDOM from 'react-dom';

const loading = true

//if语句:loading值为true的时候执行语句1,为false执行语句2。
const dataload1 = () => {
  if(loading){
    return <div>正在加载。。。</div>
  }
  return <div>加载完毕</div>
}

//三元表达式:loading值为true的时候执行语句1,为false执行语句2。
const dataload2 = () => {
  return loading ? (<div>正在加载。。。</div>) : (<div>加载完毕</div>)
}

//逻辑与运算符:loading值为true的时候执行语句,为false时不执行。
const dataload3 = () => {
  return loading && (<div>正在加载。。。</div>)
}

const text = (
  <h1>
    <p>
      {dataload1()}
    </p>
    <p>
      {dataload2()}
    </p>
    <p>
      {dataload3()}
    </p>
  </h1>
)

ReactDOM.render(text, document.getElementById('root'))

在这里插入图片描述

在这里插入图片描述

JSX的列表渲染:

如果要渲染一组数据,应使用数组的map()方法。
渲染列表时应该添加key属性,key属性的值要保持唯一。
原则:map()遍历谁,就给谁添加key属性。
尽量避免使用索引号作为key

import React from 'react';
import ReactDOM from 'react-dom';

const songs = [
  {id: 1, name: '炸雷炸雷'},
  {id: 2, name: '赛赛来来'},
  {id: 3, name: '欧雷欧雷'}
]

const text = (
  <ul>
    {songs.map(item => <li key = {item.id}>{item.name}</li>)}
  </ul>
)

ReactDOM.render(text, document.getElementById('root'))

在这里插入图片描述

JSX的样式处理:

1.行内样式:style的用法:

import React from 'react';
import ReactDOM from 'react-dom';

const text = (
  <h1 style={{color : 'red', backgroundColor : 'skyblue'}}>
    JSX的样式处理
  </h1>
)

ReactDOM.render(text, document.getElementById('root'))

2.类名:className(推荐)

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css'//引入CSS文件

const text = (
  <h1 className='title'>
    JSX的样式处理
  </h1>
)

ReactDOM.render(text, document.getElementById('root'))

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

JSX学习小总结:

在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:46:33  更:2022-10-31 11:51:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 15:57:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码