React第一天学习

作者: 誩先生 | 来源:发表于2020-02-25 13:08 被阅读0次
内容: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 类名

相关文章

网友评论

    本文标题:React第一天学习

    本文链接:https://www.haomeiwen.com/subject/rxazqhtx.html