使用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 相关文章推荐
JavaScript 10件让人费解的事情
Feb 15 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
Feb 01 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
Nov 01 Javascript
JavaScript数据结构链表知识详解
Nov 21 Javascript
vue2.0 axios前后端数据处理实例代码
Jun 30 Javascript
parabola.js抛物线与加入购物车效果的示例代码
Oct 25 Javascript
angular多语言配置详解
May 16 Javascript
详解Vue的ref特性的使用
Jan 24 Javascript
Vue computed 计算属性代码实例
Apr 22 Javascript
ES6 Symbol在对象中的作用实例分析
Jun 06 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:风雨欲来 路在何方?
2006/10/09 PHP
PHP实现的带超时功能get_headers函数
2015/02/10 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
2019/03/25 PHP
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python程序员面试题 你必须提前准备!(答案及解析)
2018/01/23 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
Django数据库操作之save与update的使用
2020/04/01 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
毕业生个人求职信范文分享
2014/01/05 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
如何写辞职书
2015/02/26 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
让子弹飞观后感
2015/06/11 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
MySQL 如何设计统计数据表
2021/06/15 MySQL