什么是组件?
组件 (Component) 是 Vue.js 最强大的功能之一。
组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。
在有些情况下,组件也可以表现为用 is
特性进行了扩展的原生 HTML 元素。
所有的
Vue 组件
同时也都是Vue 的实例
,所以可接受相同的选项对象 (除了一些根级特有的选项) 并提供相同的生命周期钩子。
改造实例
在 views 下创建 components/list.vue 文件。
<template>
<div>
<span style="font-size: 20px;">list: {{ list }}</span>
<ul>
<li v-for="(item, index) in list" :key="index">
<span style="margin-right: 20px">{{ item }}</span>
<button @click="del(index)">删除</button>
</li>
</ul>
<input v-model="value">
<button @click="add">添加</button>
</div>
</template>
<script>
export default {
data () {
return {
list: ['a', 'b'],
value: ''
}
},
methods: {
add () {
this.list.push(this.value)
},
del (index) {
this.list.splice(index, 1)
}
}
}
</script>
list.vue
<template>
<div style="margin: 30px 0 0 30px;">
<List></List>
</div>
</template>
<script>
// import Vue from 'vue'
import List from './components/list'
// 全局
// Vue.component('List', List)
export default {
components: {
List // 局部
}
}
</script>