美文网首页
react简介

react简介

作者: lucky_yao | 来源:发表于2020-11-25 13:45 被阅读0次

第一单元(react简介)

课程目标

  1. 理解react这个框架在前端开发中的地位
  2. 理解react诞生的原因和意义(react是一个用于快速构建前端视图的javaScript库)
  3. 理解什么是虚拟dom、原生js模拟出虚拟dom的表示,模拟出创建虚拟dom的方法,模拟出虚拟dom转换成真实dom的方法。
  4. 认识react中虚拟dom的表示,创建虚拟dom的方法,如何把虚拟dom渲染为真实dom。
  5. 什么是jsx,为什么要用jsx,jsx的语法细节什么怎么样的。
  6. 搭建react开发环境,并且使用react的方式去构建简单视图。

知识点

  1. react由facebook公司推出,因为该公司不满足于市面上现有的前端框架,他们认为MVC只会让前端越来越复杂,因此react就诞生了,react只关注与视图层,官方对react的定位是:一个快速构建前端视图的javaScript库。

  2. 虚拟dom是一个用于表示真实dom节点的javaScript对象。

假设有一个html标签如下:

<div id="box" class="box">hello world</div>

那么其真实dom的表示方法为

var oBox = document.getElementById('box');
//  oBox就是真实dom节点,其本质也是一个对象,只是该对象有很多的属性,操作起来是昂贵的。

其虚拟dom的表示方法为

var vBox = {
    tagName: 'div',
    props: {
        id: 'box',
        class: 'box'
    },
    children: ['hello world']
}
// vBox其实就是虚拟dom,是我们用原生的Object对象去描述一个真实dom节点的方式,该对象只有标签的一些关键属性。
  1. 封装一个可以生成虚拟dom的方法,可参考如下写法
// 生成虚拟dom
function createVdom(tagName, props, children){
    const VDom = {
        tagName,
        props,
        children
    }
    return VDom;
}

  1. 封装一个转换虚拟dom为真实dom的方法,课参考如下:
 // 把虚拟dom转换成真实dom

 function creatRdom(vDom){
    const { tagName, props, children } = vDom;
    // 创建出真实dom节点
    const rDom = document.createElement(tagName);
    // 给节点添加属性
    if(props){
        Object.keys(props).forEach(item => {
            rDom.setAttribute(item, props[item]);
        })
    }
    // 遍历children
    children.forEach(item => {
        if(typeof item === 'string'){
            const text = document.createTextNode(item);
            rDom.appendChild(text);
        }else{
            rDom.appendChild(creatRdom(item))
        }
    });
    return rDom;
 }
  1. 使用create-react-app搭建react开发环境,并查看react中如何表示虚拟dom。react中表示虚拟dom的形式如下:
1.png
  1. React.createElement的书写方式太复杂所以引入jsx语法,jsx语法可以很好的表示虚拟dom,但是jsx毕竟不是合法的js语言,所以jsx语法最后都会被babel转换成合法js语法。
2.png
  1. react中引入静态资源(css、图片),其实是webpack使用对应的loader加载了资源,并进行了打包。

  2. jsx的语法规则为遇到<>则以虚拟dom的方式解析,遇到{则以js的方式解析。其中{}中应该出现标准js的语法(有值的表达式),其中的值可以是 数字、字符串、null、布尔、undefined 或者react元素(虚拟dom),如果是数组的话,则会自动的把数组中的元素展开。

  3. React.createElement这个方法的三个参数

React.createElement(param1,param2,param3)
param1 string | React组件
param2 Object 组件上的属性
param3 Array 组件的子元素
  1. ReactDOM.render这个方法的三个参数
ReactDOM.render(param1, param2, param3)
param1 Object 组件
param2 Dom 要挂载的dom节点
param3 Function 真实dom结构渲染成功后的回调函数

授课思路

react简介.png

相关文章

  • React

    React 《React 官网文档》 React简介 React概念 React官网学习实践 - jSX简介 Re...

  • react 入门项目,重构「ONE · 一个」移动端应用

    react-one 简介:学习react搭建的一个demo,基于react,react-redux,react-r...

  • react-native 记录

    react native 是基于react框架设计的, react简介 react是Facebook推出的前端开发...

  • 【react】1-- 起步

    react中文官网:https://zh-hans.reactjs.org/ React 简介 安装 React文...

  • React学习笔记(一)

    知识点及简介 知识点 简介 React JS :使用React的语法来编写一些网页的交互效果 React Nati...

  • react 0基础学习

    npm i antdnpm i react-router-dom react简介 React 起源于 Facebo...

  • React 简介

    背景 如今Web应用的业务场景变得越来越复杂, 几乎所有的应用都尝试或者已经在Web上使用,同时,用户对Web应用...

  • React简介

    学习资料 react官方首页https://facebook.github.io/react/react中文htt...

  • React简介

    React简介 React是什么? React是Facebook开源的一个用于构建用户界面的Javascript库...

  • react简介

    一:react是什么 1. Facebook---react是Facebook在2011年开发的前端JavaS...

网友评论

      本文标题:react简介

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