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


Posted in Javascript onOctober 20, 2018

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>

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

Javascript 相关文章推荐
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
Oct 10 Javascript
jQuery实现的导航下拉菜单效果示例
Sep 05 Javascript
Bootstrap菜单按钮及导航实例解析
Sep 09 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 jQuery
微信小程序上传图片到服务器实例代码
Nov 07 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
微信小程序模拟cookie的实现
Jun 20 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
Jan 25 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
Jquery的autocomplete插件用法及参数讲解
Mar 12 jQuery
vue webpack重写cookie路径的方法
Jul 10 Javascript
Iview Table组件中各种组件扩展的使用
Oct 20 #Javascript
详解webpack打包第三方类库的正确姿势
Oct 20 #Javascript
详解ES6 Promise对象then方法链式调用
Oct 20 #Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 #Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
Oct 20 #Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 #Javascript
vue 项目地址去掉 #的方法
Oct 20 #Javascript
You might like
php中处理模拟rewrite 效果
2006/12/09 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
2016/04/02 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
js对象的构造和继承实现代码
2010/12/05 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
通过隐藏iframe实现无刷新上传文件操作
2016/03/16 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
python 解析html之BeautifulSoup
2009/07/07 Python
python读取Android permission文件
2013/11/01 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
Python通过len函数返回对象长度
2020/10/22 Python
python中常用的数据结构介绍
2021/01/12 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
优秀班干部事迹材料
2014/01/26 职场文书
个人简历自我评价范文
2014/02/04 职场文书
挂职学习心得体会
2014/09/09 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫
Win11如何设置右键单击显示所有选项?Win11右键单击显示所有选项设置教程
2022/04/08 数码科技
python模板入门教程之flask Jinja
2022/04/11 Python