一、組件
1> 組件命名方式有兩種(注意:在DOM模板中只有kebab-case命名方法才生效):
html中引用組件:
<!-- 在DOM模板中,只有 kebab-case命名才生效 -->
<my-component-name></my-component-name>
script:
Vue.component('my-component-name',{
template:'<div>這是第一種命名方式:kebab-case</div>'
/* ... */
})
html中引用組件:
<my-component-name></my-component-name>
script:
/* 根據大寫字母隔開,my-component-name */
Vue.component('MyComponentName',{
template:'<div>這是第二種命名方式:PascalCase</div>'
/* ... */
})
2> 全局組件與局部組件:
/*
* 全局組件可以在根組件的任何子組件中使用
*/
Vue.component('component-a',{/* ...組件相關配置... */})
/*
* 局部組件只能在當前注冊的組件實例中生效,在其子組件中也不生效
*/
var componentb = { /* ...組件相關配置... */ }
var vm = new Vue({
el:'#app',
'component-b':componentb /* 局部注冊組件 */
})
3> 動態組件(component)
4> 插槽(slot)
二、單文件組件
1> 組成:單文件組件有 模板(<template></template>)、腳本(<script></script>) 與 樣式(<style><style>) 組成
<!-- 這是一個單文件組件 -->
<template>
<div>模板中只允許一個根元素,可以在這個根元素中進行編寫DOM結構</div>
</template>
<script>
/* export default:默認導出對象;在這里進行vue的相關選項配置與邏輯編寫 */
export default{
name: 'App'
}
</script>
/*
* scoped:表示樣式代碼只在該組件中生效
* lang='stylus':表示樣式使用stylus格式進行編寫css
*/
<style lang='stylus' scoped>
/* >>> 3個箭頭表示修改外部樣式(.樣式2) */
.樣式1 >>> .樣式2
background:red
</style>
2> 單文件組件的注冊(局部注冊):
<template>
<div>
<!-- 引入組件 -->
<test-component> </test-component>
</div>
</template>
<script>
import TestComponent from '需要引入的組件路徑'
export default{
name: 'App',
components : {
TestComponent /* 與寫法 TestComponent:TestComponent 一致,es6新特性 */
}
}
</script>
<style lang='stylus' scoped>
</style>
三、遞歸組件
