使用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编程起步(第七课)
Feb 27 Javascript
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
Aug 13 Javascript
javascript call方法使用说明
Jan 11 Javascript
jQuery中parents()和parent()的区别分析
Oct 28 Javascript
Jquery easyui 实现动态树
Nov 17 Javascript
静态页面html中跳转传值的JS处理技巧
Jun 22 Javascript
JS实现仿百度文库评分功能
Jan 12 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
Mar 09 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
Dec 10 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
JavaScript实现tab栏切换效果
Mar 16 Javascript
浅谈webpack构建工具配置和常用插件总结
May 11 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 xml实例 留言本
2009/03/20 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
javascript中clone对象详解
2014/12/03 Javascript
jquery实现Li滚动时滚动条自动添加样式的方法
2015/08/10 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
js实现页面导航层级指示效果
2020/08/25 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
解决sublime+python3无法输出中文的问题
2018/12/12 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
PyTorch中的Variable变量详解
2020/01/07 Python
基于Python数据结构之递归与回溯搜索
2020/02/26 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
介绍一下write命令
2012/09/24 面试题
生产部经理岗位职责
2013/12/16 职场文书
测量工程专业求职信
2014/02/24 职场文书
个人借款担保书
2014/04/02 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
幸福家庭标语
2014/06/27 职场文书
教师培训简讯
2015/07/20 职场文书
个人向公司借款协议书
2016/03/19 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python