使用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在多浏览器下for循环的使用方法
Nov 07 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
May 01 Javascript
JavaScript提升性能的常用技巧总结【经典】
Jun 20 Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 Javascript
使用JS 插件qrcode.js生成二维码功能
Feb 20 Javascript
jQuery Pagination分页插件使用方法详解
Feb 28 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
Apr 12 Javascript
bootstrap时间控件daterangepicker使用方法及各种小bug修复
Oct 25 Javascript
五步轻松实现zTree的使用
Nov 01 Javascript
Angular-UI Bootstrap组件实现警报功能
Jul 16 Javascript
简述vue-cli中chainWebpack的使用方法
Jul 30 Javascript
vue不操作dom实现图片轮播的示例代码
Dec 18 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 Token(令牌)设计
2008/03/15 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
AMFPHP php远程调用(RPC, Remote Procedure Call)工具 快速入门教程
2010/05/10 PHP
PHP crc32()函数讲解
2019/02/14 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
js判断是否是手机页面
2017/03/17 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
[46:44]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python使用suds调用webservice接口的方法
2019/01/03 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Django 自定义分页器的实现代码
2019/11/24 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
python如何求圆的面积
2020/07/01 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
档案管理员岗位职责
2013/12/01 职场文书
学术会议欢迎词
2014/01/09 职场文书
廉洁自律个人总结
2015/02/14 职场文书
学校教师培训工作总结
2015/10/14 职场文书
施工安全协议书
2016/03/22 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
如何让你的Nginx支持分布式追踪详解
2022/07/07 Servers