react初体验

简介: react初体验

安装react的环境


npm install -g create-react-app
复制代码


最后利用脚手架建立项目demo01


create-react-app demo01
复制代码


(关于create-react-app很慢的问题)由于某原因,在拉取各种资源时,往往会巨慢

解决方案是换源,虽然平常使用cnpm来代替npm,但也只是使用新的指令而已,而在寻求create-react-app的相关配置希望修改registry时失败了,最后发现create-react-app指令默认调用npm,于是直接把npm的register给永久设置过来就好了,这样使用cnpm或者npm就没差别了。


npm config set registry https://registry.npm.taobao.org
-- 配置后可通过下面方式来验证是否成功
npm config get registry
-- 或npm info express
复制代码


网络异常,图片无法展示
|


设置成功后,再执行create-react-app my-app,就会有惊喜。

\


react的优缺点:


优点:

1、JSX写在javascript里,执行更快,编译为javascript代码时进行优化

2、类型更安全,编译过程如果出错就不能编译,及时发现错误

3、JSX编写模板更加简单快速(不要跟vue比)

\


注意:

1、JSX必须要有根节点

2、正常的普通HTML元素要小写,如果是大写,默认认为是组件

\


JSX表达式

1、由HTML元素构成

2、中间如果需要插入变量用{},且不用写""或者''

3、{}中间可以使用表达式

4、{}中间表达式中可以使用JSX对象

5、属性和html内容一样都是用{}来插入内容

\

JSX的class是className, 而不是直接class(当然,直接class也不会出错)


import React from 'react'
import ReactDOM from 'react-dom'
const classStr = "regBg"
const element = (
    <div>
        <h1 className={"abc " + classStr}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


结果:


网络异常,图片无法展示
|


如果classname是数组形式 =>

如:


import React from 'react'
import ReactDOM from 'react-dom'
const classStr = ["regBg", "red"]
const element = (
    <div>
        <h1 className={classStr}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


则会报错, {}内可写数组,可无法识别

结果:


网络异常,图片无法展示
|


如果数组的拆分再合并,则可以 如 =>


import React from 'react'
import ReactDOM from 'react-dom'
const classStr = ["regBg", "red"].join(' ')
const element = (
    <div>
        <h1 className={classStr}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


结果:


网络异常,图片无法展示
|


JSX的style

如果在JSX里面写style,是没有-的,并且第二个字母需要大写(borderBottom: 1px solid #ddd;)


import React from 'react'
import ReactDOM from 'react-dom'
const exampleStyle = {
    background: "skyblue",
    borderBottom: "1px solid #red"
}
const element = (
    <div>
        <h1 style={exampleStyle}>hello world</h1>
    </div>
)
ReactDOM.render(element, document.getElementById('root'))
复制代码


1、class、style中,不可以存在多个class或者style属性


<div class='abc' class={active}></div>   // 错误的表示
复制代码


2、style样式中,如果存在多个单词的属性组合, 第二个单词开始, 首字母大写, 也可以用引号''写起来


const exampleStyle = {
  backgroundColor: "skyblue",
  borderBottom: "4px solid red",
  'background-image': "url(https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png)"
}
复制代码


3、注释

必须要括号的表达式内书写,否则报错 => {/* 代码 */}

相关文章
|
JavaScript 前端开发 算法
React 初体验
React 初体验
162 0
|
1月前
|
前端开发 JavaScript UED
React 基础与实践 | 青训营笔记
React 基础与实践 | 青训营笔记
40 0
|
2月前
|
前端开发 JavaScript Java
React 速通笔记
【7月更文挑战第17天】
35 1
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
前端学习笔记202305学习笔记第二十九天-React keep alive原理之2
67 0
|
前端开发
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之8
前端学习笔记202306学习笔记第四十八天-react-admin marmelab之7
46 0
|
4月前
|
前端开发 JavaScript
前端知识笔记(二十六)———React如何像Vue一样将css和js写在同一文件
前端知识笔记(二十六)———React如何像Vue一样将css和js写在同一文件
55 1
|
10月前
|
前端开发
前端笔记:React的form表单全部置空或者某个操作框置空的做法
在React框架前端开发中,经常会有弹出框的开发,涉及到弹出框,难免就会有表单。一般在关闭弹出框或者对表单联动时,往往都需要考虑对表单进行置空操作了。
84 0
|
Web App开发 前端开发 JavaScript
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
66 0
|
JavaScript 前端开发 调度
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber和虚拟dom关系
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber和虚拟dom关系
105 0
|
前端开发
前端学习笔记202305学习笔记第二十九天-React keep alive原理之1
前端学习笔记202305学习笔记第二十九天-React keep alive原理之1
42 0

热门文章

最新文章