首页 > 其他分享 >第一章、react高级

第一章、react高级

时间:2022-09-07 01:00:10浏览次数:59  
标签:render dom 高级 第一章 react message jsx hello

目录

一、邂逅react开发和初体验

1、简介
* react是什么?
    - 用于构建用户界面的javascript库
* 常见的javascript库
    - jquery
    - vue
    - react
    - angular
* react的起源
    - 2013年,facebook开源的javascript库
* react的特点-声明式编程
    - ui = f(state)
* react的特点-组件化开发
    - 复杂的界面拆分成一个个小的组件
* react的特点-多平台适配
    - 2013:web
    - 2015:reactnative用于移动端开发
    - 2017:reactvr用于开发虚拟现实web应用程序
* 掌握最先进的思想和技术
    - react hooks的思想
    - flutter(widget-element-renderobject)对应react(jsx-虚拟dom-真实dom)
* hackerrank调查显示
* react在国内外被广泛使用
    - 网易云音乐
    - 斗鱼
    - 知乎
    - 阿里云
    - 优酷
2、hello react案例
  • 原生实现
<h2 id="text"></h2>
<button id="btn">改变文本</button>
<script>
    // 命令式编程:每做一个操作,都是给计算机(浏览器)一步步命令
    // 声明式编程:
    // 1、定义数据
    let message = 'hello world'
    let text = document.getElementById("text")
    let btn = document.getElementById("btn")
    // 2、将数据显示在h2元素中
    text.innerHTML = message
    // 3、点击按钮,界面的数据发生变化
    btn.onclick = function () {
        message = 'hello react'
        text.innerHTML = message
    }
</script>
  • react实现
<div id="app"></div>
<!-- crossorigin:这个属性的目的是为了拿到跨域脚本的错误信息 -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<!-- 注意事项:使用jsx,并且希望script中的jsx的代码被解析,必须在script标签中添加一个属性 -->
<!-- jsx特点:多个标签最外层(根)只能有一个标签 -->
<script type="text/babel">
    /**
     * 一、react开发依赖
     *     - react:核心代码
     *     - react-dom:跨平台
     *     - babel:代码转换工具
     * 二、react-dom
     *     - web端:将jsx渲染成真实dom
     *     - native端:将jsx渲染成原生的控件(android的button,ios的uibutton)
     * 三、babel
     *     - es6 -> babel -> es5
     *     - jsx(语法糖) -> babel -> React.renderElement()
     * 四、引入react依赖
     *     - 直接cdn引入
     *     - 下载后,添加本地依赖
     *     - 通过npm管理(后续脚手架再使用)
     */
    let message = "hello world"

    function btnClick() {
        message = 'hello react'
        render()
    }

    function render() {
        // <div></div>:jsx代码
        ReactDOM.render(<div>
            <h2>{message}</h2>
            <button onClick={btnClick}>改变文本</button>
        </div>, document.getElementById('app'))
    }

    render()
</script>
  • 组件化实现
<div id="app"></div>
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script type="text/babel">
    // 封装app组件
    class App extends React.Component {
        constructor() {
            super();
            this.state = {
                message: "hello world"
            }
        }

        render() {
            return (
                <div>
                    <h2>{this.state.message}</h2>
                    <button onClick={this.btnClick.bind(this)}>改变文本</button>
                </div>
            )
        }

        btnClick() {
            this.setState({
                message: 'hello react'
            })
        }
    }

    // 渲染组件
    ReactDOM.render(<App/>, document.getElementById("app"))
</script>

标签:render,dom,高级,第一章,react,message,jsx,hello
From: https://www.cnblogs.com/linding/p/16663886.html

相关文章

  • 使用 useMemo、useCallback 和 React.memo 优化 React Render
    使用useMemo、useCallback和React.memo优化ReactRenderPhotobySusanQYinon不飞溅维护有这么多贡献者的代码比我更难,你不同意吗?这是2022年我第一次与在......
  • 在几个小时内从初级开发人员到高级开发人员
    在几个小时内从初级开发人员到高级开发人员我有25年的专业开发经验,总共有40年的经验。多年来,我一直担任开发主管、项目负责人、首席技术官、项目经理、高级架构师,并担......
  • 第一章
    一、软件工程1.1什么是软件工程:1.软件工程以系统化,规范化,可定量化的过程开发软件,研究如何把正确的管理技术,和最新的技术结合起来说白了就是:把新技术如何正确管理起来发......
  • react脚手架
    -react脚手架使用webpack搭建的webpack有各种loader、plugins为我们完成很多功能;比如语法检查、代码压缩、兼容性处理、图片压缩facebook已经为搭建好了react脚手架:cre......
  • 《跟着星仔学C语言》第一章 导言
    01_11001.1入门1.2变量与算术表达式1.1入门1.2变量与算术表达式  摄氏度与华氏度的转换代码:http://q1024.com/p/item.php?u=krc视频:https://www.bilibili.com/v......
  • 全网最简单的大文件上传与下载代码实现(React+Go)
    前言前段时间我需要实现大文件上传的需求,在网上查找了很多资料,并且也发现已经有很多优秀的博客讲了大文件上传下载这个功能。我的项目是个比较简单的项目,并没有采用特别......
  • react hook入门
    useState的使用  代码constSearch=(props:any)=>{//useState()采用一个初始state作为参数,也可以像这样使用一个空字符串。//使用state进行交互,......
  • 2022年值得推荐的五大React Native UI库
    2022年值得推荐的五大ReactNativeUI库51CTO2022-04-2411:02北京北京无忧创想信息技术有限公司关注 译者:布加迪  科技巨头之一Facebook在2015......
  • 2023年值得推荐的五大React Native UI库
    2022年值得推荐的五大ReactNativeUI库译者|布加迪科技巨头之一Facebook在2015年创建并管理ReactNative这套应用程序开发框架,以帮助开发人员构建具有原生外观感觉......
  • React Hooks { useState, useEffect }
    ReactHooks{useState,useEffect}使用状态UseState钩子是在React16.8中引入的。它允许您跟踪状态功能组件。你可能会问自己什么状态?好吧,状态通常是指组件中的动......