React-1
React-1
課程內容
React 是什麼?
一個用於構建使用者介面的 JavaScript 庫
指令式程式設計 和 宣告式程式設計
- 告訴計算機怎麼做(How) - 過程
- 告訴計算機我們要什麼(What) - 結果
如何使用 React
基於瀏覽器的模式
- 引入React.js-提供 React.js 核心功能程式碼,如:虛擬 dom
- React.createElement(type,props,children);
- 引入ReactDOM-提供了與瀏覽器互動的 DOM 功能,如:dom 渲染
- ReactDOM.render(Vnode, container[, callback])
- Vnode:要渲染的內容
- container:掛載點
- callback:渲染後的回撥函式
- ReactDOM.render(Vnode, container[, callback])
- 虛擬Dom與真實Dom區別
- 真實DOM消耗效能,虛擬DOM區域性更新 優化效能
babel
babel-standalone.js:在瀏覽器中處理 JSX
https://cdn.bootcss.com/babel-standalone/6.26.0/babel.min.js
JSX
JSX是基於 JavaScript + XML 的語法糖,需要引入Babel
- 它可以作為值使用
- 它並不是字串,也不是HTML(- className, - style
- 有且只有一個頂層元素 - React.Fragment
- 列表渲染時,必須有 key 值
- 元件的首字母一定大寫,標籤一定要小寫
基於自動化的整合環境模式 - create-react-app - 腳手架
介紹
Create React App 是一個使用 Node.js 編寫的命令列工具,通過它可以幫助我們快速生成 React.js 專案,並內建了 Babel、Webpack 等工具;還內建 ESLint 語法檢測工具、Jest 單元測試工具。還有一個基於 Node.js 的 WebServer 幫助我們更好的在本地預覽應用。
這些都通過 Create React App(CRA) 幫助我們安裝並配置好了,開箱即用
安裝與使用
npm i -g create-react-app
安裝完成以後,即可使用 create-react-app 命令
create-react-app <專案名稱>
專案目錄結構說明
my-app/
README.md
node_modules/
package.json
public/
index.html
favicon.ico
src/
index.js 專案的入口檔案
命令指令碼
npm start
啟動一個內建的本地 WebServer,根目錄對映到 './public' 目錄,預設埠:3000
npm run test
執行測試
npm run build
打包應用(準備上線)
元件
對具有一定獨立功能的資料與方法的封裝,對外暴露介面,有利於程式碼功能的複用
類式元件
- 元件類必須繼承 React.Component
- 元件類必須有 render 方法
函式式元件
- 函式的名稱就是元件的名稱
- 函式的返回值就是元件要渲染的內容
props 和 state
- 子元件通過props接受父元件傳遞的引數
- state 元件自身狀態
- setState
- 多個 setState 合併
props 與 state 的區別
state 的主要作用是用於元件儲存、控制、修改自己的可變狀態,可以在元件內部進行修改setState
props 的主要作用是讓使用該元件的父元件可以傳入引數來配置該元件,它是外部傳進來的配置引數,元件內部無法控制也無法修改
通常,props 做為不變資料或者初始化資料傳遞給元件,可變狀態使用 state
React 中的事件
- 大小寫問題,onClick()
- this統一指向undefined-解決:使用箭頭函式=>