使用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 相关文章推荐
表单序列化与jq中的serialize使用示例
Feb 21 Javascript
JS实现选择TextArea内文本的方法
Aug 03 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
Sep 26 Javascript
jQuery CSS3相结合实现时钟插件
Jan 08 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
详解JavaScript中双等号引起的隐性类型转换
May 30 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
Angular设置title信息解决SEO方面存在问题
Aug 19 Javascript
JS实现动态生成html table表格的方法分析
Jul 11 Javascript
p5.js临摹动态图形的方法
Oct 23 Javascript
vuejs实现下拉框菜单选择
Oct 23 Javascript
如何用JavaScript学习算法复杂度
Apr 30 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函数解决SQL injection
2006/12/09 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
php关闭warning问题的解决方法
2016/05/17 PHP
apache集成php7.3.5的详细步骤
2019/06/20 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
Node.js中用D3.js的方法示例
2017/01/16 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
windows环境下tensorflow安装过程详解
2018/03/30 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
详解django自定义中间件处理
2018/11/21 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
python import 上级目录的导入
2020/11/03 Python
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
John Varvatos官方网站:设计师男士时装
2017/02/08 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
先进班级集体事迹材料
2014/01/30 职场文书
投资意向书范本
2014/04/01 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
学位证书委托书
2014/09/30 职场文书
交通事故委托书范本精选
2014/10/04 职场文书
2016五一手机促销广告语
2016/01/28 职场文书