一、概述
1.1、基礎概念
React 基礎、React-Router、PubSub、Redux、AntD
定義:用於構建用戶界面的JavaScript庫;是一個將數據渲染爲HTML視圖的開源JavaScript庫。
1.2、通過寫js方式寫react
核心js
使用VScode開發,安裝個 live server運行頁面快速調試
<body> <!-- 準備好一個容器 --> <div id="test"></div> <script src="https://unpkg.com/react@16/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <!-- 生產環境中不建議使用 --> <script src="https://unpkg.com/[email protected]/babel.min.js"></script> <script type="text/babel"> //1、創建虛擬DOM const VDOM=<h1> hello ,React </h1> //一定不要寫 引號,因爲不是字符串 //2、渲染虛擬DOM到頁面 全局對象 React、ReactDOM對象 ReactDOM.render(VDOM,document.getElementById('test')); </script> </body>
1.3、爲什麼使用JSX
<div id="test"><h1 id="title"><span>hello ,React</span></h1></div>
使用js實現
<body> <!-- 準備好一個容器 --> <div id="test"></div> <script src="https://unpkg.com/react@16/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <script type="text/javascript"> //1、創建虛擬DOM const SPAN = React.createElement('span', {}, 'Hello React'); const VDOM = React.createElement('h1', { id: 'title' }, SPAN); //2、渲染虛擬DOM到頁面 全局對象 React、ReactDOM對象 ReactDOM.render(VDOM, document.getElementById('test')); </script> </body>
通過JSX
<body> <!-- 準備好一個容器 --> <div id="test"></div> <script src="https://unpkg.com/react@16/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <!-- 生產環境中不建議使用 --> <script src="https://unpkg.com/[email protected]/babel.min.js"></script> <script type="text/babel"> //1、創建虛擬DOM const VDOM = (//一定不要寫 引號,因爲不是字符串 <h1 id="title"> <span>hello ,React</span> </h1> ) //2、渲染虛擬DOM到頁面 全局對象 React、ReactDOM對象 ReactDOM.render(VDOM, document.getElementById('test')); </script> </body>
1.4、虛擬DOM與真實DOM
<body> <!-- 準備好一個容器 --> <div id="test"></div> <div id="demo"></div> <script src="https://unpkg.com/react@16/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <!-- 生產環境中不建議使用 --> <script src="https://unpkg.com/[email protected]/babel.min.js"></script> <script type="text/babel"> //1、創建虛擬DOM const VDOM = (//一定不要寫 引號,因爲不是字符串 <h1 id="title"> <span>hello ,React</span> </h1> ) //2、渲染虛擬DOM到頁面 全局對象 React、ReactDOM對象 ReactDOM.render(VDOM, document.getElementById('test')); const TDOM = document.getElementById('demo'); console.log("虛擬DOM", VDOM) console.log("真實DOM", TDOM) debugger; console.log("typeof VDOM:",typeof VDOM) console.log("VDOM instanceof Object:",VDOM instanceof Object) </script> </body>
控制檯
真實DOM 屬性非常多
1.5、JSX
<body> <!-- 準備好一個容器 --> <div id="test"></div> <script src="https://unpkg.com/react@16/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <!-- 生產環境中不建議使用 --> <script src="https://unpkg.com/[email protected]/babel.min.js"></script> <script type="text/babel"> // 模擬數據 const data=["Angular","React","Vue"] //1、創建虛擬DOM const VDOM = (//一定不要寫 引號,因爲不是字符串 <div> <h1 > 前端JS框架列表 </h1> <ul> { data.map((item,index)=>{ return <li key={index}>{item}</li> }) } </ul> </div> ) //2、渲染虛擬DOM到頁面 全局對象 React、ReactDOM對象 ReactDOM.render(VDOM, document.getElementById('test')); </script>
1.6、模塊與組件、模塊化與組件化
1.7、工具安裝與使用
chrome 下載React dev tools【紅色開發模式未打包,藍色發佈的;F12有Componments、Profiler性能】
vscode
vscode live server