使用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 相关文章推荐
document.getElementById的简写方式(获取id对象的简略写法)
Sep 10 Javascript
js判断输入是否为数字的具体实例
Aug 03 Javascript
JavaScript获取图片的原始尺寸以宽度为例
May 04 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
Jan 02 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
Mar 12 Javascript
JS实现网页右侧带动画效果的伸缩窗口代码
Oct 29 Javascript
每日十条JavaScript经验技巧(二)
Jun 23 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
Aug 25 Javascript
javascript基于定时器实现进度条功能实例
Oct 13 Javascript
webstorm和.vue中es6语法报错的解决方法
May 08 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
Sep 04 jQuery
解决betterScroll在vue中存在图片时,出现拉不动的问题
Sep 27 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
ThinkPHP登录功能的实现方法
2014/08/20 PHP
PHP实现ftp上传文件示例
2014/08/21 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
仿服务器端脚本方式的JS模板实现方法
2007/04/27 Javascript
传智播客学习之JavaScript基础篇
2009/11/13 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
面向对象继承实例(a如何继承b问题)(自写)
2013/07/01 Javascript
js获取和设置属性的方法
2014/02/20 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
在jQuery中使用$而避免跟其它库产生冲突的方法
2015/08/13 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
React 实现拖拽功能的示例代码
2019/01/06 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
Python设计模式之MVC模式简单示例
2018/01/10 Python
python中字符串内置函数的用法总结
2018/09/13 Python
Python os模块常用方法和属性总结
2020/02/20 Python
解决python3.6用cx_Oracle库连接Oracle的问题
2020/12/07 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
法国购买隐形眼镜和眼镜网站:Optical Center
2019/10/08 全球购物
电钳工人个人求职信
2014/05/10 职场文书
演讲稿的写法
2014/05/19 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
东京审判观后感
2015/06/01 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
纪律委员竞选稿
2015/11/19 职场文书
小学思品教学反思
2016/02/20 职场文书
MySQL安装失败的原因及解决步骤
2022/06/14 MySQL