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 ...
随机推荐
- 移动端布局的一些设置(在viewport里设置使页面显示相同宽度,显示相同像素大小)
viewport(视口) 具体数值(不设置时默认为980 ,部分安卓手机不支持设置成具体数值) width=device-width 和设备宽度保持一致 user-scalable=no 是否允许用户 ...
- 利用logrotate将mysql log截断
https://blog.pythian.com/mysql-log-rotation/ 1.授权用户 CREATE USER 'log_rotate'@'localhost' IDENTIFIED ...
- js得到文件后缀
js得到文件后缀 http://www.cnblogs.com/lan0725/archive/2010/05/25/1873745.html function getFileExt(str) { ...
- Java并发包5--同步工具CountDownLatch、CyclicBarrier、Semaphore的实现原理解析
前言: JUC中提供了很多同步工具类,比如CountDownLatch.CyclicBarrier.Semaphore等,都可以作用同步手段来实现多线程之间的同步效果 一.CountDownLatch ...
- Gym101630C Connections
题目大意: 给出一个\(n\)个点\(m\)条边的有向图,无自环无重边.要求把这个图进行删边,直到只剩下\(2n\)条边,使得图中每个点都可以相互连通. 知识点: DFS 解题思路: 从点\(1\)出 ...
- python 格式化输出(% VS format)
提到Python中的格式化输出方法,一般来说有以下两种方式: 1)% 格式说明由%和格式字符组成,如%f,%s,%d,它的作用是将数据按照指定的格式输出.格式说明是由“%”字符开始的. #1.输出字符 ...
- Python之日志处理(logging模块二实战)
实战篇 import logging import logging.handlers LOG_PATH = r'./' def logConfig_1(): ''' 配置 log 输出到文件 : fi ...
- Linux赋权chmod
chmod -R 777 文件名/ 给文件可读.可修改.可执行权限
- wordpress批量修改域名SQL
UPDATE wow_options SET option_value = REPLACE(option_value, 'https://wooooooow.cn' ,'http://wooooooo ...
- OpenResty应用实践
一. 安装OpenResty 创建OpenResty用户 # useradd -M www -s /usr/sbin/nologin 安装OpenResty # apt-get install lib ...