使用Vue做一个简单的todo应用的三种方式的示例代码

时间:2021-05-25

1. 引用vue.js

<!DOCTYPE html><html><head><script src="http://vuejs.org/js/vue.js"></script> <meta charset="utf-8"> <title>JS Bin</title></head><body> <div id="root"> <input type="text" v-model="inputValue"> <button @click="handlerAdd">提交</button> <ul> <li v-for="(item,index) of lists" :key="index" @click="handlerDel(index)" > {{item}} </li> </ul> </div> <script> new Vue({ el: '#root', data: { inputValue: '', lists: [] }, methods: { handlerAdd: function() { this.lists.push(this.inputValue); this.inputValue = ''; }, handlerDel: function(index) { this.lists.splice(index, 1); } } }); </script></body></html>

2. 全局组件注册

<!DOCTYPE html><html><head><script src="http://vuejs.org/js/vue.js"></script> <meta charset="utf-8"> <title>JS Bin</title></head><body> <div id="root"> <input type="text" v-model="inputValue"> <button @click="handlerAdd">提交</button> <ul> <todo-item v-for="(item,index) of lists" :content = "item" :index = "index" :key = "index" @delete="handlerDel" > </todo-item> </ul> </div> <script> Vue.component('todoItem', { props: { content: String, index: Number }, template: '<li @click="handlerClick">{{content}}</li>', methods: { handlerClick: function(){ this.$emit('delete', this.index); } } }); new Vue({ el: '#root', data: { inputValue: '' , lists: [] }, methods: { handlerAdd: function() { this.lists.push(this.inputValue); this.inputValue = ''; }, handlerDel: function(index) { this.lists.splice(index,1); } } }); </script></body></html>

3. vue-cli脚手架

// Todo.Vue<template> <div> <input type="text" v-model="inputValue"> <button @click="handlerAdd">提交</button> <ul> <todo-item v-for="(item,index) of lists" :key="index" :content="item" :index="index" @delete="handlerDel" ></todo-item> </ul> </div></template><script>import TodoItem from './components/todoItem'export default { data () { return { inputValue: '', lists: [] } }, methods: { handlerAdd () { this.lists.push(this.inputValue) this.inputValue = '' }, handlerDel (index) { this.lists.splice(index, 1) } }, components: { 'todo-item': TodoItem }}</script><style></style>// TodoItem.vue<template> <li @click="handlerClick" class="item">{{content}}</li></template><script>export default { props: ['content', 'index'], methods: { handlerClick () { this.$emit('delete', this.index) } }}</script><style scoped> ul,li { list-style: none; } .item { color: blueviolet; }</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章