使用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 声明全局变量的三种方式详解
May 07 Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
jQuery 删除或是清空某个HTML元素示例
Aug 04 Javascript
详解JavaScript中循环控制语句的用法
Jun 03 Javascript
使用canvas及js简单生成验证码方法
Apr 02 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
Sep 05 Javascript
npm 语义版本控制详解
Sep 10 Javascript
JS对日期操作封装代码实例
Nov 08 Javascript
vue 出现data-v-xxx的原因及解决
Aug 04 Javascript
原生js实现分页效果
Sep 23 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
根德YB400的电路分析
2021/03/02 无线电
PHP+MySQL投票系统的设计和实现分享
2012/09/23 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
2019/09/30 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
javascript简易画板开发
2020/04/12 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
vue实现学生录入系统之添加删除功能
2018/07/11 Javascript
微信小程序点餐系统开发常见问题汇总
2019/08/06 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
基于layui table返回的值的多级嵌套的解决方法
2019/09/19 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
Python smallseg分词用法实例分析
2015/05/28 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
python实现逻辑回归的示例
2020/10/09 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
广播体操比赛口号
2014/06/10 职场文书
小学安全教育主题班会
2015/08/12 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python