Vue中使用組件的三大步驟
? ? ? ? ? 一、定義組件(創(chuàng)建組件)
? ? ? ? ? 二徘层、注冊組件
? ? ? ? ? 三峻呕、使用組件(寫組件標(biāo)簽)
? ? ? ? 一、如何定義一個(gè)組件趣效?
? ? ? ? ? ? 使用Vue.extend(options)創(chuàng)建瘦癌,其中options和new Vue(options) 時(shí)傳入的那個(gè)options幾乎一樣,但也有點(diǎn)區(qū)別:
? ? ? ? ? ? 區(qū)別如下:
? ? ? ? ? ? ? ? 1跷敬、el不要寫讯私,為什么?---因?yàn)樽罱K所有的組件都要經(jīng)過一個(gè)vm的管理西傀,由vm中的el決定服務(wù)哪個(gè)容器
? ? ? ? ? ? ? ? 2斤寇、data必須寫成函數(shù),為什么拥褂?---避免組件被復(fù)用時(shí)娘锁,數(shù)據(jù)存在引用關(guān)系。
? ? ? ? ? ? 備注:使用template可以配置組件結(jié)構(gòu)肿仑。
? ? ? ? 二致盟、如何注冊組件?
? ? ? ? ? ? 1尤慰、局部注冊:靠new Vue的時(shí)候傳入componts選項(xiàng)
? ? ? ? ? ? 2、全局注冊:靠Vue雷蹂。component('組件名',組件)
? ? ? ? 三伟端、編寫組件標(biāo)簽
? ? ? ? ? ? <school></school>
幾個(gè)注意點(diǎn):
? ? ? ? ? 1、關(guān)于組件名:
? ? ? ? ? ? ? 一個(gè)單詞組成:
? ? ? ? ? ? ? ? 第一種寫法(首字母小寫): school
? ? ? ? ? ? ? ? 第二種寫法(首字母大寫): School
? ? ? ? ? ? ? 多個(gè)單詞組成:
? ? ? ? ? ? ? ? 第一種寫法(kebab-case命名): my-school
? ? ? ? ? ? ? ? 第二種寫法(CamelCase命名):MySchool(需要vue腳手架支持)
? ? ? ? ? ? ? 備注:
? ? ? ? ? ? ? ? (1).組件名盡可能回避HTML中已有的元素名稱匪煌,例如:h2责蝠、H2都不行
? ? ? ? ? ? ? ? (2).可以使用name配置項(xiàng)指定組件在開發(fā)者工具中呈現(xiàn)的名字党巾。?
? ? ? ? ? 2、關(guān)于組件標(biāo)簽:
? ? ? ? ? ? ? ? ? 第一種寫法:<school></school>
? ? ? ? ? ? ? ? ? 第二種寫法:<school/>
? ? ? ? ? ? ? ? 備注:不用使用腳手架時(shí)霜医,<school/>會(huì)導(dǎo)致后續(xù)組件不能渲染齿拂。
? ? ? ? ? 3、一個(gè)簡寫方式:
? ? ? ? ? ? ? ? const school = Vue.ectend(options)? 可簡寫為? const school = options