1.react的基础
1、react:专注于UI得一个js库
2、选择使用框架得原因:
写起来简单方便了,但是从稳定性上考虑得话还是原生js要稳定,所以也有很多公司直接使用原生js,但是从开发周期上来说时间会长
之前再写页面得时候,有很多公共部分,例如:头部nav,版权,banner,之前再写页面得时候需要一个人把框架搭出来,我们这个框架得基础上加内容,划分成得是一个一个得组件,而一个页面是由多个组件构成得,其中最常用的就是react和vue两个框架
3、MVC:(重点掌握)
M(model):模型(业务模型):用于封装与应用程序得业务相关得数据以及处理数据得方法,程序得功能
V(view):视图-->看到得就是视图层呈现给我们得内容(用户界面)
C(controller):控制器 :负责转发请求和处理请求得
用一种业务逻辑、数据、界面显示分离的方式组织代码得
MVC这个模型思想就是把M和V分开了
再访问数据库得时候,M不会关心是怎么显示得,怎么操作得,只关心我对我得数据是怎么样处理得
再V上是没有任何程序上的逻辑得,V就只是显示而已
控制器是让模型中得业务逻辑显示再V视图中得
4、react得特点
声明式设计--虚拟DOM,再DOM没有真正再页面中显示得话,这些都是虚拟DOM
高效--因为采取得是虚拟DOM,所以用起来是高效率得
灵活--和其他框架都能很好配合
JSX语法--可以再js中直接写html
组件化开发--组件可以重复利用
单向数据流--模型数据改变会引发视图改变,视图改变不能让模型上的数据发生变化,减少了重复得代码
5、再react中有一个diff算法(先简单概括):
可以把虚拟DOM转化成真是得DOM显示再页面中
显示再页面中得DOM就是真实得DOM
6、使用脚手架搭建得环境
很少使用,脚手架文件很大。通常不使用脚手架。
npm install create-react-app -g //全局安装 create-react-app myapp //(最后为自己的文件名) cd myapp npm start //启动
7.手动创建
//手动创建文件夹 cmd 进入
npm init //初始化
npm install webpack --save-dev
npm install webpack-dev-sever --save-dev
npm install webpack-cli --savr-dev //以上是webpack需要的依赖 //让当前得项目中的webpack能解析es6和jsx语法:
npm install babel-loader@7 babel-preset-es2015 babel-preset-stage-0 babel-preset-react babel-polyfill babel-core --save-dev //安装react得项目依赖:
npm install react react-dom --save-dev
8、再react中直接使用得是jsx语法,js和html直接写进行解析
遇到<>直接使用html解析,其他得使用得是js进行解析得
标记可以随意进行嵌套:
因为再jsx语法中输出得话只能输出一个html标记,意思就是所有得标记都必须要放在一个html得DOM元素中进行输出
如果当前标记是一个单标记那么必须要加上自闭和
如果使用得是{},是对js进行解析得
如果想要使用得表达式得话使用条件运算符:。。?。。:。。,不能使用if。。。else判断
9、render方法:
把虚拟DOM转化成真实得DOM
10、再react中最重要得就是组件,组件实际上就是一个js文件
之前再js中我们都知道有函数,其实组件就是一个函数
对于函数来说,传不同得参数会返回不同的值
对于组件来说,给不同得属性(props)或状态(state)返回得是DOM
11、组件得创建:
组件:其实就是一个函数
组件分为两种:无状态组件,有状态组件
再react中组件得更新,那么通过改变状态达到组件得更新得,换句来说无状态组件就是一个纯展示性得组件
无状态组件就是一个带返回值得函数,普通带返回值得函数返回得时一个值,而对于react中的组件来说它的返回值是一个DOM
组件创建有3种方式
什么是状态:看成是形参,对于形参来说,传不同得值显示不同得结果,有状态就可以渲染出不同得DOM,没有状态得话就直接显示一个固定得DOM,不会改变,换句话来说这个DOM就是纯展示得DOM
组件什么时候会被重新渲染呢,就是状态改了,那么组件才能被重新渲染
无状态组件再创建得时候有一个种方式进行创建,就是js得函数了,特点:不需要传入props,更不会改变state,就是一个单纯得function,和之前函数得区别就是把return出来得值换成是一个DOM了
特点:
组件不能被实例化
组件种得this不能被访问:因为没有实例化得过程,所以this不能访问
组件没有办法访问生命周期中的方法
组件只有props,但是没有state,所以不会重新渲染
12、有状态组件:
es5创建得:createClass
es6创建得:Component
因为再react种创建组件就是Component,里边封装了创建react组件得方法,所以我们如果需要创建react组件得话就要把react.Componet上创建组件得方法继承过来才行,这样才是一个react完整得组件,es6提供给了我们一个创建对象得方法class,再react中得组件再创建得时候就使用得是class进行创建得,因为react本身就是一个组件,在创建的时候使用的是Component进行创建的,所以我们创建出来得react组件需要使用extends继承react组件得一些特性,包括里边得属性和方法,所以我们再创建react组件得时候创建方法是:
class 组件名 extends React.Component{}
1.react的基础的更多相关文章
- React入门---基础知识-大纲-1
-----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...
- React Native基础&入门教程:初步使用Flexbox布局
在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击<React Native基础&入门教程:调试React Native应用的一小 ...
- react native基础与入门
react native基础与入门 一.react native 的优点 1.跨平台(一才两用) 2.低投入高回报 (开发成本低.代码复用率高) 3.性能高:拥有独立的js渲染引擎,比传统的h5+ w ...
- 1.react的基础知识
React 的基础之:JSX 语法 react 使用 JSX 语法,js 代码中可以写 HTML 代码. let myTitle = <h1>Hello, World!</h1> ...
- typescript+react+antd基础环境搭建
typescript+react+antd基础环境搭建(包含样式定制) tsconfig.json 配置 // 具体配置可以看上面的链接 这里module moduleResolution的配置都会影 ...
- 诱人的 react 视频教程-基础篇(14 个视频)
诱人的 react 视频教程-基础篇(14 个视频) 诱人的 react 视频教程 - 基础篇 #1 介绍「07:25」 诱人的 react 视频教程 - 基础篇 #2 create-react-ap ...
- React JS 基础知识17条
1. 基础实例 <!DOCTYPE html> <html> <head> <script src="../build/react.js" ...
- React Router基础使用
React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...
- React Router基础教程
React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...
- React Native基础概念和基础认识
学习地址:https://github.com/vczero/react-native-lesson 当我们初始化一个RN项目的时候主要的是index.ios.js文件和index.android.j ...
随机推荐
- 常用loaders
css-loader,style-loader: 在webpack中,所有文件资源都可以看成模块.css文件也可以作为模块引入到config.js配置对象的entry文件中. 1.entery文件中导 ...
- java排查故障
java排查故障top -Hp 31327 #或top -p 31327,再按shift+h,-H则是线程开关,传入该参数的话,top界面会显示所有单独的线程列表) ##31327为java进程,拿到 ...
- DPDK Mbuf Library(学习笔记)
1 Mbuf库 Mbuf库提供了分配和释放缓冲区(mbufs)的功能,DPDK应用程序可以使用这些mbufs来存储消息缓冲. 消息缓冲存储在内存池中,使用Mempool库. 数据结构rte_mbuf通 ...
- INNODB 数据页结构
InnoDB DataPage 16384B 16K 38B FILE HEADER 56B PAGE HEADER RECORD Infimum + supremum Records UserRec ...
- WordPress 获取文章内容页特色图像地址
WordPress获取特色图像地址主要需要用到两个函数get_post_thumbnail_id和wp_get_attachment_image_src.下面是分别获取小.中.大.完整.指定图片规格的 ...
- OpenStack的Heat组件详解
一:简介 一.什么Heat 1. Heat 是一套业务流程平台,旨在帮助用户更轻松地配置以 OpenStack 为基础的云体系.利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自 ...
- Cypress系列(2)- Cypress 框架的详细介绍
如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Cypress 简介 基于 JavaSc ...
- 获取MP4媒体文件时长
由于之前上传MP4文件没有保存视频时长,现在有需要,所以只好写代码读取时长.找了几个发现是 c/c++ 实现,或者是借助 FFmpeg 实现. 一个偶然在 GitHub 上面发现一个 c 文件,由于获 ...
- 括号树 noip(csp??) 2019 洛谷 P5658
洛谷AC通道 本题,题目长,但是实际想起来十分简单. 首先,对于树上的每一个后括号,我们很容易知道,他的贡献值等于上一个后括号的贡献值 + 1.(当然,前提是要有人跟他匹配,毕竟题目中要求了,是不同的 ...
- pandas手册
https://www.dataquest.io/blog/large_files/pandas-cheat-sheet.pdf