1.public文件夾
放公共文件的,一般來說不用管它悲关。但index.html是入口文件襟锐。
2.src文件夾
我們開發(fā)的文件夾撤逢,非常重要。app.js其實(shí)是組件文件粮坞,index.js文件才是我們的入口文件
*import的用法
一個(gè)組件中蚊荣,有且只有一個(gè)默認(rèn)導(dǎo)出。比如有兩個(gè)js文件莫杈,分別是home.js和user.js妇押。
在user.js里:
export default user1
export const user =42
在home.js里,引用user.js:
import anyText from './user'
import {user} from './user'
anyText可以取任意名字姓迅,它都是對(duì)應(yīng)到user.js里的export default user1。
user加了大括號(hào)俊马,是因?yàn)橹付ㄒ胾ser.js里的export const user=42.
在這里我們也可以寫成
import anyText, {user} from './user'
我們可以把from 后面的'./user'理解為從user.js文件中引用丁存。寫到大括號(hào)里的組件就是指定引用,沒寫到大括號(hào)里的就是引用默認(rèn)組件柴我。
還有一種特殊的:
import * as anyText1 from './user'
這里的*表示引用user.js文件里的所有組件并命名為anyText1解寝,但是不包括默認(rèn)組件。
3.調(diào)整目錄結(jié)構(gòu)
2中src里的文件比較亂艘儒,什么文件都放到src文件夾下的聋伦,所以我們需要調(diào)整把它們分別歸類。
components用來放我們組件文件界睁,assets用來放我們的靜態(tài)資源觉增。
4.文件關(guān)系
在這個(gè)項(xiàng)目里,app.js是根組件翻斟。但我們真正實(shí)際的項(xiàng)目逾礁,一般不是這樣的結(jié)構(gòu)。我們一般把動(dòng)態(tài)路由掛載到根組件里访惜。
a)我們在components文件夾中創(chuàng)建Home組件嘹履。(Home.js腻扇,home的首字母要大寫)
注意:構(gòu)造函數(shù)中的關(guān)鍵字super,指代父類的實(shí)例(即父類的this對(duì)象)砾嫉。子類必須在constructor方法中調(diào)用super方法幼苛,否則新建實(shí)例時(shí)會(huì)報(bào)錯(cuò)。這是因?yàn)樽宇悰]有自己的this對(duì)象焕刮,而是繼承父類的this對(duì)象舶沿,然后對(duì)其進(jìn)行加工。如果不調(diào)用super方法济锄,子類就得不到this對(duì)象暑椰。
class Person {
constructor (name) {
? ? this.name = name;
? }
}
class Student extends Person {
? constructor (name, age) {
? ? super(); // 用在構(gòu)造函數(shù)中,必須在使用this之前調(diào)用
? ? this.age = age;
}
}
為什么官方的列子里面寫個(gè)super(props):
只有一個(gè)理由需要傳遞props作為super()的參數(shù)荐绝,那就是你需要在構(gòu)造函數(shù)內(nèi)使用this.props
那官方提供學(xué)習(xí)的例子中都是寫成super(props)一汽,所以說寫成super(props)是完全沒問題的,也建議就直接這樣寫低滩。
b) 我門在components文件中再創(chuàng)建一個(gè)News組件召夹。