【React学习笔记】第一章:React入门

1.React介绍

中文官网: https://react.docschina.org/
英文官网:https://reactjs.org/

1.1 React是什么

react是一个用于构建用户界面的开源JavaScript库。(操作DOM呈现页面)
由Facebook的软件工程师 Jordan Walke创建,于2011年部署于Facebook 的 newsfeed;2012年 部署于 Instagram;2013年 5 月宣布开源。

1.2 React的特点:

1.采用组件化模式、声明式编码,提高开发效率及组件复用率。

  • 声明式: 只需要描述UI(HTML)看起来是什么样,就和写HTML一样。React负责渲染UI,并在数据变化时更新UI
  • 基于组件: 组件是react最重要的内容,组件表示页面中的部分内容。组合、复用多个组件,可以实现完整的页面功能

2.在React Native中可以使用 React 语法进行移动端开发。(JS可以写出来IOS\Android)
两种手机平台: IOS(OC Swift)、Android(java)
3.高效:使用虚拟DOM+优秀的Diffing算法,尽量减少与真实DOM的交互。

2.React的基本使用

2.1 相关JS库

1.babel.min.js:作用是将jsx 转为 js 
2.react.development.js:react的核心库,引入后全局有React对象
3.react-dom.development.js:react的扩展库,引入后全局有ReactDOM对象

用React官网CDN链接下载 react库
常用js库下载BootCDM

<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/babel.min.js"></script>

2.2 Hello react

注意:
1.react核心库要在react-dom之前引入
2.<script type="text/babel"></script> 一定要写babel
3.创建虚拟DOM时不写引号,这是jsx的写法
4.渲染虚拟DOM的语法:ReactDOM.render(虚拟DOM, 容器)

示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset=
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Babel=t():e.Babel=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var r=t.slice(1),n=e[t[0]];return function(e,t,i){n.apply(this,[e,t,i].concat(r))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,r){"use strict";function n(e,t){return g(t)&&"string"==typeof t[0]?e.hasOwnProperty(t[0])?[e[t[0]]].concat(t.slice(1)):void 0:"string"==typeof t?e[t]:t}function i(e){var t=(e.presets||[]).map(function(e){var t=n(E,e);if(!t)throw new Error('Invalid preset specified in Babel options: "'+e+'"');return g(t)&&"object"===h(t[0])&&t[0].hasOwnProperty("buildPreset")&&(t[0]=d({},t[0],{buildPreset:t[0].buildPreset})),t}),r=(e.plugins||[]).map(function(e){var t=n(b,e);if(!t)throw new Error('Invalid plugin specified in Babel options: "'+e+'"');return t});return d({babelrc:!1},e,{presets:t,plugins:r})}function s(e,t){return y.transform(e,i(t))}function a(e,t,r){return y.transformFromAst(e,t,i(r))}function o(e,t){b.hasOwnProperty(e)&&console.warn('A plugin named "'+e+'" is already registered, it will be overridden'),b[e]=t}function u(e){Object.keys(e).forEach(function(t){return o(t,e[t])})}function l(e,t){E.hasOwnProperty(e)&&console.warn('A preset named "'+e+'" is already registered, it will be overridden'),E[e]=t}function c(e){Object.keys(e).forEach(function(t){return l(t,e[t])})}function f(e){(0,v.runScripts)(s,e)}function p(){window.removeEventListener("DOMContentLoaded",f)}Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.buildExternalHelpers=t.availablePresets=t.availablePlugins=v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值