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的基础的更多相关文章

  1. React入门---基础知识-大纲-1

    -----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...

  2. React Native基础&入门教程:初步使用Flexbox布局

    在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击<React Native基础&入门教程:调试React Native应用的一小 ...

  3. react native基础与入门

    react native基础与入门 一.react native 的优点 1.跨平台(一才两用) 2.低投入高回报 (开发成本低.代码复用率高) 3.性能高:拥有独立的js渲染引擎,比传统的h5+ w ...

  4. 1.react的基础知识

    React 的基础之:JSX 语法 react 使用 JSX 语法,js 代码中可以写 HTML 代码. let myTitle = <h1>Hello, World!</h1> ...

  5. typescript+react+antd基础环境搭建

    typescript+react+antd基础环境搭建(包含样式定制) tsconfig.json 配置 // 具体配置可以看上面的链接 这里module moduleResolution的配置都会影 ...

  6. 诱人的 react 视频教程-基础篇(14 个视频)

    诱人的 react 视频教程-基础篇(14 个视频) 诱人的 react 视频教程 - 基础篇 #1 介绍「07:25」 诱人的 react 视频教程 - 基础篇 #2 create-react-ap ...

  7. React JS 基础知识17条

    1. 基础实例 <!DOCTYPE html> <html> <head> <script src="../build/react.js" ...

  8. React Router基础使用

    React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...

  9. React Router基础教程

    React是个技术栈,单单使用React很难构建复杂的Web应用程序,很多情况下我们需要引入其他相关的技术 React Router是React的路由库,保持相关页面部件与URL间的同步 下面就来简单 ...

  10. React Native基础概念和基础认识

    学习地址:https://github.com/vczero/react-native-lesson 当我们初始化一个RN项目的时候主要的是index.ios.js文件和index.android.j ...

随机推荐

  1. 常用loaders

    css-loader,style-loader: 在webpack中,所有文件资源都可以看成模块.css文件也可以作为模块引入到config.js配置对象的entry文件中. 1.entery文件中导 ...

  2. java排查故障

    java排查故障top -Hp 31327 #或top -p 31327,再按shift+h,-H则是线程开关,传入该参数的话,top界面会显示所有单独的线程列表) ##31327为java进程,拿到 ...

  3. DPDK Mbuf Library(学习笔记)

    1 Mbuf库 Mbuf库提供了分配和释放缓冲区(mbufs)的功能,DPDK应用程序可以使用这些mbufs来存储消息缓冲. 消息缓冲存储在内存池中,使用Mempool库. 数据结构rte_mbuf通 ...

  4. INNODB 数据页结构

    InnoDB DataPage 16384B 16K 38B FILE HEADER 56B PAGE HEADER RECORD Infimum + supremum Records UserRec ...

  5. WordPress 获取文章内容页特色图像地址

    WordPress获取特色图像地址主要需要用到两个函数get_post_thumbnail_id和wp_get_attachment_image_src.下面是分别获取小.中.大.完整.指定图片规格的 ...

  6. OpenStack的Heat组件详解

    一:简介     一.什么Heat 1. Heat 是一套业务流程平台,旨在帮助用户更轻松地配置以 OpenStack 为基础的云体系.利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自 ...

  7. Cypress系列(2)- Cypress 框架的详细介绍

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html Cypress 简介 基于 JavaSc ...

  8. 获取MP4媒体文件时长

    由于之前上传MP4文件没有保存视频时长,现在有需要,所以只好写代码读取时长.找了几个发现是 c/c++ 实现,或者是借助 FFmpeg 实现. 一个偶然在 GitHub 上面发现一个 c 文件,由于获 ...

  9. 括号树 noip(csp??) 2019 洛谷 P5658

    洛谷AC通道 本题,题目长,但是实际想起来十分简单. 首先,对于树上的每一个后括号,我们很容易知道,他的贡献值等于上一个后括号的贡献值 + 1.(当然,前提是要有人跟他匹配,毕竟题目中要求了,是不同的 ...

  10. pandas手册

    https://www.dataquest.io/blog/large_files/pandas-cheat-sheet.pdf