React第一天学习

内容:React入门

一、react是什么?

react是facebook使用的一个Javascript库

​ 可以用来创建web用户交互界面

​ MVC中的视图层

官网:https://react.docschina.org/

优点:

​ 效率高

​ 组件化

​ 跨浏览器兼容

​ 虚拟DOM

​ JSX

​ 报错信息完整清晰(提示)

缺点:不是完整的MVC框架

二、虚拟DOM

在react中,我们执行DOM操作的对象并不是真正的DOM节点,而是react创建的一个轻量级的JS对象,这个对象称为虚拟DOM。

Diff算法,每当数据变化时,都会重新构建整个DOM树,和上一次的DOM树进行对比,根据变化的部分来进行实际的DOM操作。

三、JSX语法糖【重点】

JSX是Javascript和XML,是facebook为react开发的一套语法糖,它是JavaScript的语法扩展,允许HTML与Javascript的混写。

它的目的是增加程序的可读性,从而减少程序代码出错的机会。

它不是一个新的语法,在JSX中,遇到“<>”会解析成HTML,遇到“{}”会解析成JS

四、基本使用

1.引入核心库(React、ReactDOM)、引入babel(编译器)

2.设置一个挂载点(作用范围)

3.ReactDOM.render来渲染页面

var el = <div>
   <h1>这是JSX语法糖</h1>
</div>
var app = document.getElementById("app")
ReactDOM.render(el,app)

五、组件【重点】

1.定义方式

(1)es6 类

class 组件名 extends React.Component{
    render(){
        return(
            <div></div>
        )
    }
}

注意:组件的类名首字母要大写

(2)构造函数

function 组件名(){
    return(
        <div></div>
    )
}

2.组件嵌套

function Index(){
     return(
          <div>
              <h1>Hello,Index组件</h1>
              { /* 通过组件名来使用已定义好的组件 */ }
              <Home className="home" />
         </div>
    )
}

六、脚手架

1.安装

npm install create-react-app -g

2.初始化项目

create-react-app 项目名称

注意:项目名称不能包含中文和空格

3.项目目录结构

myapp

- node_modules          项目依赖目录
  • public 项目根目录
    • index.html 项目首页
    • favicon 页面图标
    • mainfest.json 页面配置文件
  • src 项目源码(主战场)
    • index.js 主入口
    • index.css 全局样式表
    • App.js 根组件
    • App.css 根组件的样式表
    • logo.svg 图片
    • serviceWorker.js 离线访问服务
    • setupTests.js 测试
    • .gitignore git忽略规则文件
    • package.json 项目依赖配置文件
    • package-lock.json 锁定安装时的包的版本
    • README.md 项目说明文件

运行流程:

​ public/index.html>src/index.js>src/App.js

七、常见错误【重点】

1.Uncaught SyntaxError: Inline Babel script: Adjacent JSX elements must be wrapped in an enclosing tag

只能有一个结束标签:根标签

2.Warning: Invalid DOM property class. Did you mean className?

在jsx中,class属性应该写成className

3.uncaught SyntaxError: Inline Babel script: Unterminated JSX contents

在react中,input、img、br、hr 需要加上闭合

4.Warning: Invalid DOM property for. Did you mean htmlFor?

在react中,for属性应该写成htmlFor

5.Warning: Each child in a list should have a unique "key" prop.

遍历生成元素时,需要给元素指定key属性(key属性不能重复)

6.Uncaught Error: Target container is not a DOM element.

document.getElementById(“元素的id”)

指定的id元素,必须在dom存在

7.Warning: The tag <home> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.

react中的组件名,应该是首字母大写的。

8../src/App.js
Attempted import error: './Hello' does not contain a default export (imported as 'Hello').

在脚手架的组件中,定义好组件后,需要导出 export default 类名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • React简介 (1)简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaSc...
    鱼鱼吃猫猫阅读 1,618评论 1 6
  • [toc] REACT react :1.用来构建用户界面的 JAVASCRIPT 库2.react 专注于视图层...
    拨开云雾0521阅读 1,435评论 0 1
  • React脚本架工具 React基本语法 1.视图中如何插值: 用 { } 2.React遍历--map 相...
    沉默成本阅读 323评论 0 1
  • 准备:npm i webpack -D 项目的结构 1.我们需要一个package.json文件npm init ...
    独步西行阅读 256评论 0 0
  • React - Basics 概念 react 是一个构建用户界面的 js 库 react 主要用户构建UI ...
    glAkihi阅读 402评论 0 0