從零開始學習React-目錄結構,創建組件頁面(二)
- 2019 年 11 月 5 日
- 筆記
一:了解目錄結構
1:打開編輯器,導入上一節的創建的項目,開始查看目錄結構,manifest.json
指定了開始頁面index.html
,一切的開始都從這裡開始。

目錄解釋:
node_modules: 這裡面包含了react項目中會用到的一些組件 。 src:裡面包含了一些我們自己使用的js文件,css文件,img文件等等 manifest.json:清單配置文件,聲明了項目的名稱圖標以及入口 package.json: 包的清單文件,這裡面聲明的包會通過npm下載到node_modules中
2:先看一下app.js內容
import React from 'react'; import logo from './logo.svg'; import './App.css'; function App() { return ( <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> <p> 祈澈菇涼 </p> <a className="App-link" href="https://www.jianshu.com/u/05f416aefbe1" target="_blank" rel="noopener noreferrer" > <h2>歡迎來到王小婷的第一個項目教程</h2> </a> </header> </div> ); } export default App;

可以看到,修改一下App.js
中的文字,會發現瀏覽器會立即作出響應
3:關於目錄整合 由於初始化裡面src
的資源目錄比較亂,我不太喜歡,所以按照自己的編程習慣,新建兩個文件,用於存放組件components
和靜態資源asset
,便於管理,更加清晰。


改動之後也需要再修改一下app.js裡面的相應的引入路徑,以免報錯。
import React from 'react'; import logo from './asset/images/logo.svg'; import './asset/css/App.css';

二:新建一個組件
先看一下app.js根組件裡面的內容,使用的是render
模板,即jsx
語法。寫項目的時候,所有的子組件都掛在在根組件上,我們要做的頁面和項目程式碼最好全部都寫在子組件裡面,根組件最好少些,越簡單越好。
1:首先在我們的components
文件夾裡面新建一個Home.js
組件,注意:組件名稱首字母記得大寫。

2:開始寫組件程式碼Home.js 首先要引入react
以及react
下面的Compoent
,引進以後要開始創建組件,使用class Home extends Component{}
,完成以後,寫個render(){}
模板 ,裡面程式碼即為jsx
語法寫的頁面具體html
內容了。程式碼寫好哦之後,要通過export default Home
,把寫好的組件暴露出來,因為暴露出來之後就可以在其他組件裡面引入我們已經寫好的Home組件啦。
Home.js
import React, { Component } from 'react'; class Home extends Component { render() { return <div> 你好,react的第一個組件頁面</div> } } export default Home;
3:在根組件app.js裡面引入Home 打開app.js
文件,首先引入import Home from './components/Home'
,引入之後,需要把組件掛在根裡面,寫成單標籤<Home/>
或者雙標籤<Home></Home>
,表示掛載在上面。
app.js
import React from 'react'; import logo from './asset/images/logo.svg'; import './asset/css/App.css'; //引入home組件 import Home from './components/Home' function App() { return( <div className="App"> <header className="App-header"> <img src={logo} className="App-logo" alt="logo" /> </header> <Home/> </div> ); } export default App;
看一下效果,新建組件內容以及可以展示了。

三:關於JSX語法
JSX 是一個看起來很像 XML 的 JavaScript 語法擴展,,語法注意:有多行程式碼的時候,React組件裡面的所有節點都需要被根節點包含起來。
1:語法優點:
JSX 執行更快,因為它在編譯為 JavaScript 程式碼後進行了優化。 它是類型安全的,在編譯過程中就能發現錯誤。 使用 JSX 編寫模板更加簡單快速。
2:定義和綁定react數據
在構造函數裡面定義數據
構造函數裡面必須寫一句程式碼,super();
表示繼承Component
,寫完之後開始在構造函數裡面定義數據,定義的數據放在this.state裡面。
擴展:關於es6中super關鍵字的理解: super不僅僅是一個關鍵字,還可以作為函數和對象。Es6中的super可以用在類的繼承中,super關鍵字,它指代父類的實例(即父類的this對象)。 子類必須在constructor方法中調用super方法,否則新建實例會報錯,這是因為子類沒有自己的this對象,而是繼承父類的this對象,然後對其進行加工,如果不調用super方法,子類就得不到this對象。
綁定數據
數據定義完成之後需要在底下的模板裡面使用,該怎麼使用數據?比如說在模板的<p>
標籤裡面綁定數據,用this.state.name
來獲取數據,以此類推。
<p>{this.state.name}</p>
Home.js
import React, { Component } from 'react'; class Home extends Component { constructor(){ super(); //react定義數據 this.state={ name:"我是王小婷啊", age:'23', joy:{ web:"前端開發" } } } render() { return ( <div> <p>{this.state.name}</p> <p>{this.state.age}</p> <p>{this.state.joy.web}</p> </div> ) } } export default Home;

ok,學會了React-目錄結構,創建組件頁面以及JSX的基本語法了。