一、基础知识

1、var 定义的局部变脸可以衍生为全局变量,, 引入let
2、const 定义的变量不能被修该,相当于final
3、 includes 相当于contains,包含的意思
startsWith 是否以某个字符串开头
endsWith 是否已某个字符串结尾
4、let s = ;可以原样打印
5、箭头函数

5.1
var print = function(obj){console.log(1);
}
==>var print = obj =>console.log(1);
5.2
var print = function(a,b){return a+b;
}
==>var print = (a,b)=>a+b;
5.3 没有参数时要用()占位,代表参数部分
5.4 业务代码不至一行可以这么写:
var print = (a,b)=>{console.log(a);console.log(b);
}

6、新增函数

6.1、map()  :接受一个函数后,将原数组中的元素用这个函数处理后放入新的数组返回。例:将一个字符串数组转换为一个int数组
let arr = [“66”,”54”,”99”];
let newArr = arr.map(s =>parseInt(s))  //var s = s=>parseInt(s);
console.log(newArr)
6.2、reduce(a,b)

7、扩展运算符

spread  由…代替:将一个叔祖转为用逗号分割的参数序列
例:console.log(…[1,2,3])  //1 2 3数组合并:console.log([…[1,2,3],…[5,9,8]])  //[1,2,3,5,9,8]字符串转数组:console.log(…’hello’)      //[‘h’,’e’,’l’,’l’,’o’]

8、Promise

简单说就是一个容器,存储着某个未来才能结束的事件(通常是一个异步操作)的结果,从语法上说,promise是一个对象,可以获取异步操作的消息,promise提供统一的api,各种异步操作都可以用同样的方法进行处理。
const promise = new Promise(function(resolve,reject){//执行异步操作//if(操作成功){resolve(value)//代表将返回成功的结果}else{reject(error)//代表返回失败结果}
})
如果我们想要等异步结束之后做一些事情,可以通过promise的then方法来实现:
promise.then(function(value){//异步执行完的回调
})如果想执行失败后的事件,可以这样写:
promise.then(function(value){//异步执行完的回调
}).catch(function(error){//异步执行失败的处理
})

9、Set 和Map

9.1、set和java中的set非常相似,元素不可重复,否则会被忽略。let set = new Set();set.add(1);let set2 = new Set([1,2,3,4,5])   //接收数组//方法:set.add(1);//添加set.clear();//清空set.delete(1);//指定删除元素set.has(1);//判断是否存在该元素set.forEach(function(s){console.log(s)})//遍历set.size;//元素个数
9.2、mapconst map = new Map([[‘map1’,’value1’],[‘map2’,’value2’]])可以接受set和map方法:map.set(key,value);//添加map.clear();//清空map.delete(key);//删除指定keymap.has(key);//判断key是否存在map.forEach(function(key,value){})//遍历map.size;//个数map.values();//获取value迭代器map.keys();//获取key迭代器map.entries();//获取entry迭代器for(let key of map.keys()){console.log(key)}

10、Generator函数

异步编程解决方案,语法行为与传统函数完全不一样。function* hello(){yield “hello”;yield “world”;return “down”;}

二、部署安装

1、安装node.js
安装结束后通过 node –v查询版本号
2、安装yarn
npm i yarn tyarn –g -g 代表全局安装

tyarn –v 查看版本

3、安装umi
tyarn global add umi
umi
如果出现umi “不是内部或外部命令”…,解决方式如下:
3.1、更换高版本node.js >10
3.2、tyarn global bin 将获取到的global地址添加到环境变量
4、新建web项目
4.1、初始化:tyarn init –y
4.2、添加依赖:tyarn add umi --dev
4.3、第一个hello world

tyarn add umi-plugin-react --dev 安装插件
umi build 编译
umi dev 启动
遇到错误点:https://blog.csdn.net/qq_38763540/article/details/104774956

4.4、组件

import React from 'react'           //导入react
import HellWorld from './helloworld2'   //导入自定义组件
import HellWorld2 from './helloworld'   //导入自定义组件class hw extends React.Component{   //继承React.Componentrender() {      //重写render方法return <HellWorld2/>;   //JSX语法}
}
export default hw;   //导出该类

4.5、传递参数
属性传递<HellWorld name="lfq">beijing</HellWorld>
内容传递<HellWorld name="lfq">beijing</HellWorld>

接收方式:
接受属性:<dev> name={this.props.name},address={this.props.children}</dev>
接受内容:<dev> name={this.props.name},address={this.props.children}</dev

4.6、组件的状态

import React from 'react'           //导入reactclass hw4 extends React.Component{   //继承React.Componentconstructor(props){super(props);console.log("构造方法~constructor")this.state={dataList : [1,2,3,4],flag : 10}}componentDidMount() {console.log("组件挂载后调用~componentDidMount");}componentWillUnmount() {console.log("组件从DOM中移除后调用~componentWillUnmount")}componentDidUpdate() {console.log("组件完成更新后调用~componentDidUpdate")}shouldComponentUpdate(nextProps, nextState) {console.log("this.state或者this.props更新~shouldComponentUpdate")}render() {      //重写render方法return (<div><ul>{this.state.dataList.map(((value, index) => {return <li key={index}>{value}</li>}))}</ul><buttononClick={()=>{let newFlag = this.state.flag + 1;let newDataList = [...this.state.dataList,newFlag]this.setState({dataList : newDataList,flag : newFlag})}}>添加</button></div>);}
}export default hw4;   //导出该类

reactJS入门学习相关推荐

  1. ReactJS入门学习一

    ReactJS入门学习一 阅读目录 React是什么? React如何制作组件? 理解组件属性props 理解页面中如何渲染数据的 理解从服务器端获取数据及理解state的 回到顶部 React是什么 ...

  2. java reactjs_[Java教程]Reactjs 入门基础(一)

    [Java教程]Reactjs 入门基础(一) 0 2016-06-02 17:00:04 实例中我们引入了三个库: react.min.js .react-dom.min.js 和 browser. ...

  3. web前端开发入门学习线路图详解-2019升级版

    现如今,Web前端工程师已经成为各大互联网公司不可或缺的热门职位,从业者队伍日渐庞大,这其中不乏零基础学习者和转行人士.为了方便大家系统而全面的掌握前端基础知识,千锋小编特意整理了web前端开发入门学 ...

  4. ReactJs入门教程-精华版

    原文地址:https://www.cnblogs.com/Leo_wl/p/4489197.html 阅读目录 ReactJs入门教程-精华版 回到目录 ReactJs入门教程-精华版 现在最热门的前 ...

  5. python速成要多久2019-8-28_2019最全Python入门学习路线,不是我吹,绝对是最全

    近几年Python的受欢迎程度可谓是扶摇直上,当然了学习的人也是愈来愈多.一些学习Python的小白在学习初期,总希望能够得到一份Python学习路线图,小编经过多方汇总为大家汇总了一份Python学 ...

  6. MAYA 2022基础入门学习教程

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:3.41 GB |时长:4.5小时 包含 ...

  7. 3dmax Vray建筑可视化入门学习教程

    面向初学者的3Ds Max Vray最佳Archviz可视化课程 从安装到最终图像的一切都将从头开始教授,不需要任何经验 大小解压后:3.25G 时长4h 6m 1280X720 MP4 语言:英语+ ...

  8. Blender 3.0基础入门学习教程 Introduction to Blender 3.0

    成为Blender通才,通过这个基于项目的循序渐进课程学习所有主题的基础知识. 你会学到什么 教程获取:Blender 3.0基础入门学习教程 Introduction to Blender 3.0- ...

  9. Maya游戏角色绑定入门学习教程 Game Character Rigging for Beginners in Maya

    准备好开始为游戏制作自己的角色动画了吗? 你会学到什么 了解Maya的界面 优化并准备好你的模型,为游戏做准备 了解关节以及如何使用它们来构建健壮的角色骨骼,以便在任何游戏引擎中制作动画 了解IK和F ...

最新文章

  1. SAP Lumira 初探
  2. shell 字符串操作
  3. 用四种方法Python求出两个有序数组中的中位数
  4. 【资源】MIT 更新最大自然灾害图像数据集,囊括 19 种灾害事件
  5. 四数之和Python解法
  6. 倩女幽魂7月20日服务器维护,倩女幽魂手游7月20日更新什么?倩女幽魂手游7月20日更新一览...
  7. 201409-1-相邻数对
  8. 航拍地形图转换成地形图_无人机航测生成地形图技术流程(Pix4D+ArcGIS+CASS)...
  9. win7资源服务器未响应,win7电脑怎么设置服务器未响应
  10. ios识别人脸自动拍照_ios人脸拍照识别
  11. 敏捷开发 SCRUM 简介
  12. uniapp之安卓文件操作插件
  13. c艹入门->入土 ( 二 )
  14. 2023华南农业大学计算机考研信息汇总
  15. def序列化器---视图序列化反序列化
  16. 【092】召唤神龙-指尖大鱼吃小鱼的魔性游戏
  17. ubuntu安装和使用labellmg(含pyqt4的安装教程)
  18. 圈复杂度函数Java_圈复杂度 - byron_nj - 博客园
  19. 原神私服搭建三:(启动器下载和设置代理)
  20. 海康威视的监控软件 手机端

热门文章

  1. Bill课堂【二】——头脑风暴
  2. day06 Debug基础练习
  3. iframe嵌套页面下载问题
  4. Redis常见的数据结构(数据类型)
  5. 修改数据库:修改表 ( ALTER TABLE )
  6. 静下心来,慢慢改变一切.
  7. Vue之VantUI库
  8. PHPWind 源码解析
  9. Ubuntu上搭建Android编译环境(1)
  10. Linux-常用文件夹及目录作用