一、基础知识

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. 关于AI方面创业公司的分析
  2. Struts2学习笔记-part1: 快速起步
  3. Jmeter也能IP欺骗!
  4. 命令查看多线程所有线程ID
  5. opencv入门 - 显示图像学习总结
  6. css 动画使用_如何在CSS中使用动画
  7. 一些Linux历史的小散
  8. 五个案例让你明白GCD死锁
  9. HDU 2829 Lawrence
  10. Java中字符串的拼接和转义
  11. 简单测试Content-Length和Chunked两种不同的数据传输方式
  12. 关系抽取(relation extraction)综述
  13. 计算机系统的组成中的软件部分
  14. 盛诺基科创板IPO被终止:曾拟募资20亿 IDG与启明是股东
  15. 使用夜神模拟器进行Android开发调试
  16. 关于人工智能的定义,这篇文章定义比较全面了
  17. 课程设计-在校整理-10 基于知识图谱的医疗智能问答小程序实现示例
  18. JDBC--藤原豆腐店自用
  19. 电机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. 基于OpenCV的二维码和条形码识别

热门文章

  1. 29个必知晓产业互联网热词
  2. Android 自绘动画效果---小清新等待
  3. win10 cmd 窗口中文乱码的永久解决方案
  4. 阿里Code无密钥登录
  5. android 工具箱
  6. windows 下实现socket编程_传送文件
  7. html中table标签、tr标签、th标签、td标签的基础知识
  8. qq天气:Tencent Weather
  9. Ubuntu上开发Android
  10. process_在JShell中尝试Java9 HTTP客户端和Process API