1801A React

初識React

課程目標

  1. React簡介
  2. 腳手架
  3. hello world
  4. JSX語法

知識點

1.React簡介

React 起源於 Facebook 的內部項目,因爲該公司對市場上所有 JavaScript MVC 框架,都不滿意,就決定自己寫一套,用來架設 Instagram 的網站(https://www.instagram.com/)。做出來以後,發現這套東西很好用,就在2013年5月開源了(https://github.com/facebook/react)。由於 React 的設計思想極其獨特,屬於革命性創新,性能出衆,代碼邏輯卻非常簡單。所以,越來越多的人開始關注和使用,認爲它可能是將來 Web 開發的主流工具。

官方網站:https://react.docschina.org/

英文官方網站:https://reactjs.org/

目前的版本: 16.13.1

github star數:149k (vue是164k)

npm下載量對比:https://npmcharts.com/compare/react,vue

2.腳手架

create-react-app官網:https://github.com/facebook/create-react-app

npm 從5.2版開始,增加了 npx 命令。

npx 還能避免全局安裝的模塊。

npx 將create-react-app下載到一個臨時目錄,使用以後再刪除。所以,以後再次執行上面的命令,會重新下載create-react-app。

每次使用的都是最新版本,腳手架使用的頻率並不高,一個大項目使用一次就夠了。

npx create-react-app my-app
cd my-app
npm start

3.hello world

類組件:

import React, { Component } from 'react'

export default class Home extends Component {
  render() {
    return (
      <div>
        hello world!
      </div>
    )
  }
}

函數組件:

import React from 'react'

const Home = () => {
  return (
    <div>
      hello world!
    </div>
  )
}

export default Home

4.JSX語法

React發明了JSX,利用HTML語法來創建虛擬DOM。

React的核心機制之一就是可以在內存中創建虛擬的DOM元素。以此來減少對實際DOM的操作從而提升性能。

JSX 即Javascript XML,它是對JavaScript 語法擴展。

我們建議在 React 中配合使用 JSX,JSX 可以很好地描述 UI 應該呈現出它應有交互的本質形式。

JSX 是一個看起來很像 XML 的 JavaScript 語法擴展。

我們可以在 JSX 中使用 JavaScript 表達式。表達式寫在花括號 {} 中。

在 JSX 中不能使用 if else 語句,但可以使用 conditional (三元運算) 表達式來替代。

HTML 語言直接寫在 JavaScript 語言之中,這就是 JSX(JavaScript and XML) 的語法。JSX,是一種 JavaScript 的語法擴展,它允許 HTML 與 JavaScript 的混寫。JSX是facebook爲React框架開發的一套語法糖,語法糖又叫做糖衣語法,是指計算機語言中添加的某種語法,這種語法對語言的功能並沒有影響,但是更方便程序員使用,它主要的目的是增加程序的可讀性,從而減少程序代碼錯處的機會。JSX就是JS的一種語法糖,類似的還有CoffeeScript、TypeScript,最終它們都會被解析成JS才能被瀏覽器理解和執行,如果不解析瀏覽器是沒有辦法識別它們的,這也是所有語法糖略有不足的地方。

const element = <h1>Hello, world!</h1>;

上面這種看起來可能有些奇怪的標籤語法既不是字符串也不是HTML,被稱爲 JSX,JSX帶來的一大便利就是我們可以直接在JS裏面寫類DOM的結構,比我們用原生的JS去拼接字符串,然後再用正則替換等方式來渲染模板方便和簡單太多了。推薦在 React 中使用 JSX 來描述用戶界面。JSX 用來聲明 React 當中的元素, 乍看起來可能比較像是模版語言,但事實上它完全是在 JavaScript 內部實現的。

你可以任意地在 JSX 當中使用 JavaScript 表達式,在 JSX 當中的表達式要包含在大括號裏。例子如下:

const names = ['Jack', 'Tom', 'Alice'];
const element = (
  <div>
     { names.map(function (name) { return <div>Hello, {name}!</div>}) }
  </div>
);

在書寫 JSX 的時候一般都會帶上換行和縮進,這樣可以增強代碼的可讀性。與此同時,推薦在 JSX 代碼的外面擴上一個小括號,這樣可以防止分號自動插入的bug。

上面我們聲明瞭一個names數組,然後遍歷names數組在前面加上Hello,生成了element數組。JSX 允許直接在模板插入 JavaScript 變量。如果這個變量是一個數組,則會展開這個數組的所有成員。JSX 本身其實也是一種表達式,在編譯之後,JSX 其實會被轉化爲普通的 JavaScript 對象。

授課思路

在這裏插入圖片描述

案例作業

1.閱讀官網
2.使用腳手架創建項目
3.編寫hello world頁面
4.預習加加減減

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章