1 vue-cli的安装和项目配置
这篇博文中有详细的介绍:安装vue-cli2.0并创建项目。
2 使用vue-cli开发todolist
- src文件夹下添加文件:TodoList.vue。
<template><!--最外侧只能有一个包裹元素(根标签)-->
<div>
<div>
<input v-model="inputValue"/>
<button @click="handleSubmit">提交</button>
</div>
<ul>
<todo-item v-for="(item, index) of list"
:key="index"
:content="item"
:index="index"
@delete="handleDelete"></todo-item>
</ul>
</div>
</template>
<script>
import TodoItem from './components/TodoItem'
/*data是一个函数,函数返回值是数据*/
export default {
components: {
'todo-item': TodoItem
},
data (){
return{
inputValue: '',
list: []
}
},
methods: {
handleSubmit (){
this.list.push(this.inputValue),/*自动在data中找list,this.list相当于this.$data.list*/
this.inputValue = ''
},
handleDelete (index){
this.list.splice(index, 1)
}
}
}
</script>
<style>
</style>
- main.js中引用TodoList。
import TodoList from './TodoList'
- src文件夹中的components文件夹下添加文件:TodoItem.vue。
<template>
<li @click="handleDelete">{{content}}</li>
</template>
<script>
export default {
props: ['content', 'index'],
methods: {
handleDelete (){
this.$emit('delete', this.index)
}
}
}
</script>
<style scoped>
.item {
color: green
}
</style>
3 全局样式与局部样式
<template>
<li class="item" @click="handleDelete">{{content}}</li>
</template>
...
<!--scoped作用域,父组件的样式不会被子组件影响-->
<style scoped>
.item {
color: green
}
</style>