React 之 初识

react 全家桶

React基础  React-Router  PubSub   Redux  Ant-Design等

什么是React ?

用于构建用户界面的javascript库,可以说:react 是一个将数据渲染为html视图的开源javascript库

学习react 需要引入四个文件

babel.min.js  //可以将es6转es5,还可以将jsx转js

react.development.js 核心库

react-dom.development.js  扩展库,用来操作dom

prop-types.js

注意: react 使用jsx语法
 
写jsx语法的好处?
若是复杂的标签嵌套关系,那么用jsx会很方便,更简单的创建虚拟dom
 
babel到底做了什么呢?
因为浏览器不认识jsx的写法,所以把jsx转为js,那么具体转化成什么样的呢,如下面的创建虚拟dom 方式一 的代码 转为 方式二 的代码
 

写一个简单的demo

注意点:

1.引入文件顺序

   react.development.js  -->  react-dom.development.js   -->babel.js

   <script type="text/babel"> 此处一定要写babel

第一种创建虚拟dom的方式

<!-- 此处有一个容器 -->
  <div id="test"></div>
  <script src="js/react.development.js"></script>
  <script src="js/react-dom.development.js"></script>
  <script src="js/babel.min.js"></script>
  <script type="text/babel"> /* 一定要写babel */
  /* 创建虚拟DOM */
      const VDom =<h1>hello,react</h1>  /* 此处一定不要写引号 */
      ReactDOM.render(VDom,document.getElementById('test'))
  </script>

第二种创建虚拟dom的方式

  <script src="js/react.development.js"></script>
  <script src="js/react-dom.development.js"></script>
  <script type="text/javascript"> /* 一定要写babel */
  /* 创建虚拟DOM */
  /* React.createElement(标签,属性,内容) */
      const VDom = React.createElement('h1',{id:'title'},'hello,react') /* 此处一定不要写引号 */
      ReactDOM.render(VDom,document.getElementById('test'))
  </script>

虚拟dom是什么呢?是对象呢还是数组呢?

1.本质是Object类型的对象(一般对象)

2.虚拟dom比较"轻",真实dom比较"重",因为虚拟dom是react内部在用,无需真实dom上那么多属性

3.虚拟dom最终会被React转化为真实dom,呈现在页面上

原文地址:https://www.cnblogs.com/zmztya/p/14622776.html