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. 第四篇:NLP(Natural Language Processing)自然语言处理

    NLP自然语言处理: 百度AI的 NLP自然语言处理python语言--pythonSDK文档: https://ai.baidu.com/docs#/NLP-Python-SDK/top 第三方模块 ...

  2. apache.zookeeper-3.4与apache.kafka-2.11的安装

                                           zookeeper与Kafka集群安装 集群安装以三台机器(虚拟机,物理机等等)为例子: 192.168.200.100 ...

  3. js 简单有效判断日期有效性(含闰年)

    原文:https://zhidao.baidu.com/question/1701946584925153620.html 要想精确验证,最容易想到的方法就是通过月份判断日期是否合法(1~28/29/ ...

  4. LaunchScreen作为启动图设置,修改无效的解决方案

    原有的推流APP用launchScreen做的启动图,现在要修改一张,发现修改无效. 当前测试的方法有 1,重启Xcode  卸载app 清楚xcode缓存 2,修改launchScreen.stor ...

  5. Windows系统下Git的下载和配置

    简介:Git是一款免费.开源的分布式版本控制系统,可记录文件每次改动,便于多人协作编辑. 下载:git-for-windows下载地址https://git-for-windows.github.io ...

  6. Linux 下三种提高工作效率的文件处理技巧

    Linux 下三种提高工作效率的文件处理技巧 在 Linux 下工作,打交道最多的就是文件了,毕竟 Linux 下工作一切皆文件嘛.Linux 也为大家提供了多种用于处理文件的命令,合理使用这些命令可 ...

  7. [PHP]用PHP自己写一个基于zoomeye的api(偷懒必备quq)

    0x01 起因 因为手速慢,漏洞刷不过别人,一个个手补确实慢,所以想自己写一个api,一键抓取zoomeye的20页,然后就可以打批量了 ovo(真是太妙了!) 0x02 动工       1.抓包做 ...

  8. js 滚动条滑动

    toTop() { let top = document.documentElement.scrollTop || document.body.scrollTop; // 实现滚动效果 const t ...

  9. ORCLE 列转行

    字符串转多列 实际上就是拆分字符串的问题,可以使用 substr.instr.regexp_substr函数方式 字符串转多行 使用union all函数等方式 wm_concat函数 wm_conc ...

  10. protocbuf的简单理解

    之前通信协议替换为protocbuf!新老交替,很多不同看法,也提出来一些负面因数: 1.老的内部通信协议体已经有一段时间了,稳定熟悉! 2.通过通信结构体进行交互,实际上并没有序列化和反序列化的过程 ...