基于React脚手架搭建以及安装使用
一、react初之体验
a.理解React设计的核心思想
它是V(view 视图)框架,设计之初仅仅是不满意Boostrap的页面设计:
1.一切皆组件,最小化到一个元素
2.只有单向数据流 - - 数据可追溯,获取值和设置值都是一个方法
b.React开发特性
除了核心库之外,其它的所有库包括状态管理器和路由这样的库都是社区维护
特性:版本多,更新快,同样的功能库很多
c、脚手架的安装
React的脚手架做了一个硬性的升级,对Node.js版本有要求,一定是14.x 版本
Node.js升级,如果是低版本,直接安装新版本即可 -- 一定不要使用单版本(例如(双数可以不是单数):13.x,15.x)
脚手架因为是社区维护,所以最好不用本地安装,因为这个版本不可控(所以使用网络安装cra)
d.脚手架的使用
使用npx这个命令来进行项目初始化:名字为 -> CRA(create-react-app)
国内安装使用有些慢,需要耐心
npx create-react-app react-demo
它根据npm的一些痛点,开发了一个类似于npm的一个库,这个库在react中是一个常用库,以后安装库的时候,不再使用cnpm/npm,使用yarn
安装yarn:cnpm/npm i -g yarn
e.认识React原生webpack配置
运行项目:yarn start
运行脚手架释放命令,可以把脚手架全部解析出来,这个命令是不可逆:yarn eject --
一般有架构师才会执行这个命令,否则搞不定
安装命令:yarn add less less-loader
二、编写第一个react应用
a.React使用的基本规则
标准规定:
每一个组件文件的第一行是 => import React from 'react'
在之前的开发中,react组件文件是jsx文件(home.jsx),现在开发的时候是直接home.js
b.JSX语法
c.React的createElement方法
d.分类以及实现
e.组件拆分
在进行编写react时,要安装VSCode的插件:ES7 + React/Redux/React-Native/JS snippets
!!!react组件只有两种
1.函数组件:别名(无状态组件) -- 我们现在的编程方向是函数式编程 (在代码中需要去写逻辑,那么可以在方法中写逻辑)
定义一个函数,这个函数需要返回一个JSX对象
//react组件第一行代码
import React from 'react'
//在react中必须使用render方法把虚拟组件或则是虚拟节点挂载到真实dom上 -- react-dom库中的render
import ReactDom from 'react-dom'
//React的creactElement函数接收三个参数,然后返回一个React元素(就是虚拟dom),使用这个函数的时候有参数顺序的注意
//第一个:是元素名字
//第二个:是InputHTMLAttributes 输入框的html属性
//第三个参数,都是子元素
// const ElFunc=function(){
//定义一个数据,它的值为一个html片段 - - 在react中称这个html片段为一个JSX(JavaScript XML 也是react的一个特有语法)对象
//使用js语法,来编写xml对象的一个格式
/** 括号包所有数据 在js中写代码是一个声明的对象或者变量参数 ,方法里写就需要返回参数来代表函数的使用
* const elObj=(
* <h2>
* hello
*</h2>)
*/
//代码内可以写逻辑,那么也可以在方法中写逻辑
function ElFunc(){ return ( <h1> hello,react </h1> ) }
//render方法接收两个参数 :第一个 是react的虚拟dom(可以是js对象,容器,普通方法) =>React.DOMElement,
//第二个是:ReactDom.Container 容器 --需要指到index.html这个页面上的顶层js对象,root根元素
ReactDom.render(
//elObj 普通jsx对象
//elFunc() 作为普通方法调用
// <ElFunc/> 组件写法 在React中,组件的名字,首字母必须大写
,
document.querySelector('#root')
)
//帕斯卡语法 ->每一个单词的首字母大写,包括首字母MyName
//驼峰语法 ->每一个单词的首字母大写,但是第一个字母小写 myName
2.在React v16.8之前没有函数组件,只有类组件
定义一个普通类,如何让一个普通类成为一个组件?继承
应该去继承类组件,类声明当前类成为一个组件对象
在定义一个普通类时然后去继承Component类成为一个组件,一定要实现render放,方法必须返回一个JSX对象
//定义一个组件 import React from 'react' class MyClass extends React.Component{ //可以返回this需要渲染的虚拟dom console.log(this) render ( <h1> hello </h1> ) } //导出组件 export default MyClass //或者引入组件 import MyClass from './MyClass' ReactDom.render( <MyClass/> )
原文地址:https://www.cnblogs.com/cc-font/p/15961203.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【52期】记一道简单的Java面试题,但答错率很高!
- 面向隐私 AI 的 TensorFlow 深度定制化实践
- 别再问如何用Python提取PDF内容了!
- gff文件转换成gtf文件
- R的save,load函数和 .rda文件
- 10行Python代码自动清理电脑内重复文件,解放双手!
- 【一天一大 lee】二叉树的后序遍历 (难度:中等) - Day20200929
- 一日一技:在Golang下如何相对简单地开发爬虫?
- 原创 | 一文读懂正态分布与贝塔分布
- 收款神器!解读聚合收款码背后的原理
- 短视频商城源码,滑动时渐变效果实现
- CICD实战——服务自动测试
- MySQL 案例:left join 与 BUG
- WordPress缩略图出现A TimThumb error has occured解决办法
- 2020-09-30:谈谈内存对齐。