相关概念:

插件: 别人写好的第三方库

xxx 插件: jQuery 插件  /  react 插件

全家桶: 核心库 + 相关插件

构建项目: 对项目源码 进行 编译、合并、压缩......处理,生成能让浏览器高效运行的打包文件

构建用户界面: 显示带数据的界面(将数据以页面的形式展现出来)

jQuery 库: 直接操作 DOM,只是简化封装成了函数,是一个函数库。

React 库: 间接操作 DOM,通过修改状态数据刷新界面,组件化的编程思想

模块化编程: 一个 js 就是一个模块,项目代码由多个模块构成。

界面: html、css 实现的

功能: js 实现的

React Native 可以用开发原生应用 APP

一个 图片 的显示: 由内存的数据被浏览器解析 DOM 元素对象 渲染到页面

轻量级对象: 属性少 ---- 虚拟 DOM 元素对象

重量级对象: 属性多 ---- 原生 DOM 元素对象

React

用于动态构建 用户界面 的 javascript 库,由 Facebook 开源

特点:

声明式: 无需直接操作 DOM,只需更新页面数据对应的状态数据,即可更新页面

组件化编程: 每个界面功能完成的部分(html、css等所有资源)称之为 "组件"

作用: 简化、复用

组件使用:

一次学习,随处使用: 可以一套代码实现跨平台应用 (支持客户端与浏览器渲染)

高效: 只需操作虚拟 DOM,框架会映射到原生 DOM,采用了 DOM Diff 算法,最小化页面重绘

单数据流

基本使用:

1. 使用 CDN 引入 React 16.7

<script src="https://cdn.bootcss.com/react/16.7.0/umd/react.development.js"></script>
<script src="https://cdn.bootcss.com/react-dom/16.7.0/umd/react-dom.development.js"></script>
<script src="https://cdn.bootcss.com/babel-standalone/6.26.0/babel.js"></script>

注意:  在浏览器中使用 Babel 来编译 JSX 效率是非常低的____页面运行过程中编译

产品版,应该是使用构建工具,提前将源码编译成正常的源码

2. 引入插件

操作 DOM 的插件

Babel 将 ES6 转 ES5,将 jsx 转换成 js

3. 写代码(浏览器解析之前,babel 会将 jsx 代码转换成 js 代码)

// 使用 jsx 语法 创建虚拟 DOM

<script type="text/babel">    // 声明使用 babel 解析 jsx 为 js

const vDOM = <h2 id={myId} name={myName}>{content}</h2>;

// 然后渲染 

ReactDOM.render(vDOM, document.getElementById("test"));

// 创建虚拟 DOM 的 非 jsx 语法 步骤

const vDOM  = React.createElement('h2', {id:"myWords", name: "kjf"}, "Hello React.");

// 然后渲染

ReactDOM.render(vDOM, document.getElementById("test"));

// 插入页面前: 根据虚拟 DOM 生成原生 DOM

// 将内存的虚拟 DOM元素渲染到页面的原生 DOM 容器

jsx

<h2 id={myId} name={myName}>{content}</h2>;

全称:JavaScript XML

react 定义的一种类似于 XML 的 js 扩展语法 XML + js

标签、属性、文档 与 html 的相对应

作用: 创建 react 虚拟 DOM 元素对象

注意:

不是字符串,而是最终产生一个对象。虚拟 DOM 元素对象

debugger

动态展示列表数据

js

  • /**** 虚拟 DOM 标签数组
    const lis = [
    <li>Thor</li>,
    <li>Stark</li>,
    <li>Hock</li>,
    ]
    const ul = (
    <ul>
    {lis}
    </ul>
    );
    ****/ const names= ["Thor", "Stark", "Hock"] // 创建虚拟 DOM
    const ul = (
    <ul>
    {
    names.map(
    (each, index)=><li key={index}>{each}</li>
    )
    }
    </ul>
    ) // 渲染 DOM
    ReactDOM.render(ul, document.getElementById("outer"))

代码地址: kiss me.

React 简介及其基本使用的更多相关文章

  1. (二)React简介

    React简介 2-1: React v16 (React Fiber) React比Vue更灵活 Vue更简单 2-2 开发环境搭建 如何开始:(两种方式) 1.传统方式script标签引入.js文 ...

  2. React从入门到放弃之前奏(2):React简介

    本系列将尽可能使用ES6(ES2015)语法.所以均在上节webpack的基础上做开发. React是Facebook开发的一款JS库,因为基于Virtual DOM,所以响应速度快,以及支持跨平台. ...

  3. React简介

    React JS:可以用react的语法,来编写网页的交互效果 React Native:可以让我们借用react的语法来编写原生的app应用 React VR:在react的基础上去开发VR,或者说 ...

  4. React 简介

  5. React组件和生命周期简介

        React 简介----React 是 Facebook 出品的一套颠覆式的前端开发类库.为什么说它是颠覆式的呢? 内存维护虚拟 DOM 对于传统的 DOM 维护,我们的步骤可能是:1.初始化 ...

  6. 《React Native 精解与实战》书籍连载「React 与 React Native 简介」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  7. react第一单元(简介)

    第一单元(react简介) 课程目标 理解react这个框架在前端开发中的地位 理解react诞生的原因和意义(react是一个用于快速构建前端视图的javaScript库) 理解什么是虚拟dom.原 ...

  8. React入门 (1)—使用指南(包括ES5和ES6对比)

    前言 本篇会简明扼要的介绍一下React的使用方法.代码会用JSX+ES5和JSX+ES6两种方式实现. React简介 React来自Facebook,于2013年开源.至今不断修改完善,现在已经到 ...

  9. React学习之一:React初探

    一,React简介 React是由Facebook和Instagram开发的一套创建用户界面的JavaScript库.许多人认为React是MVC中的V. React创建的目的是为了:构建数据随时会改 ...

随机推荐

  1. 基于ionic4、cordova搭建android开发环境

    前颜(yan)最近公司有一个项目需求是利用h5进行跨平台开发,这里所说的跨平台开发指的是:将h5代码利用某种方式或工具环境进行打包,最后生成android的apk以及ios的ipa. 本文只讲解and ...

  2. mui选择器的坑

    mui框架最近比较火,因为在移动端的页面展示效果太好了,web页面相当于APP的效果.连二年级的小明同学都知道了..你别说你不知道哦 但是这毕竟是一个不成熟的框架,维护和解决方案都跟不上,因此新手入坑 ...

  3. django - 总结 - form表单

    {{ form.as_table }} 以表格的形式将它们渲染在<tr> 标签中 {{ form.as_p }} 将它们渲染在<p> 标签中 {{ form.as_ul }} ...

  4. [Android] Android 锁屏实现与总结 (一)

    实现锁屏的方式有多种(锁屏应用.悬浮窗.普通Activity伪造锁屏等等).但国内比较主流并且被广泛应用的Activity伪造锁屏方式. 实例演示图片如下: 系列文章链接如下: [Android] A ...

  5. XML,json,ajax

    一.XML 1.概述:XML全称为Extensible Markup Language, 意思是可扩展的标记语言 2.版本:W3C在1998年2月发布1.0版本:W3C在2004年2月发布1.1版本, ...

  6. 「luogu3313」[SDOI2014] 旅行

    题目大意 :有 n 个城市连成一棵树, 每个城市有两个关键字, 一个是该城市的宗教, 另一个是城市的评级;旅行者要在城市间旅行, 他只会在和自己宗教相同的城市留宿;维护四个树上操作 { 1. “CC ...

  7. [Kubernetes]编排其实很简单

    什么是编排 Kubernetes中,我们总是在说一个概念:编排. 在[Kubernetes]谈谈Kubernetes的本质这篇文章中,关于"编排"的概念介绍了一下:过去很多集群管理 ...

  8. 在Linux中调试段错误(core dumped)

    在Linux中调试段错误(core dumped) 在作比赛的时候经常遇到段错误, 但是一般都采用的是printf打印信息这种笨方法,而且定位bug比较慢,今天尝试利用gdb工具调试段错误. 段错误( ...

  9. 【原创】大数据基础之CM5(Cloudera Manager)+CDH5离线安装

    CM/CDH 5.16.1 CM官方:https://www.cloudera.com/products/product-components/cloudera-manager.html CDH官方: ...

  10. 27)django-form操作示例(动态Select数据,自定义字段验证,全局验证等)

    1)普通传递select数据 # -*- coding:utf-8 -*- __author__ = 'shisanjun' from django import forms from django. ...