使用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 相关文章推荐
firefox中用javascript实现鼠标位置的定位
Jun 17 Javascript
JavaScript加密解密7种方法总结分析
Oct 07 Javascript
Json字符串转换为JS对象的高效方法实例
May 01 Javascript
用jquery实现动画跳到顶部和底部(这个比较简单)
Sep 01 Javascript
jQuery ztree实现动态树形多选菜单
Aug 12 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
Dec 08 Javascript
js获取ip和地区
Mar 10 Javascript
理解javascript async的用法
Aug 22 Javascript
Vue v2.5 调整和更新不完全问题
Oct 24 Javascript
微信小程序实现留言板(Storage)
Nov 02 Javascript
Vue js with语句原理及用法解析
Sep 03 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
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
javascript写的异步加载js文件函数(支持数组传参)
2014/06/07 Javascript
JavaScript图像延迟加载库Echo.js
2016/04/05 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
js实现蒙版效果
2020/01/11 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
区分vue-router的hash和history模式
2020/10/03 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
python处理圆角图片、圆形图片的例子
2014/04/25 Python
让 python 命令行也可以自动补全
2014/11/30 Python
Python栈类实例分析
2015/06/15 Python
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
python抽取指定url页面的title方法
2018/05/11 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
整理HTML5中支持的URL编码与字符编码
2016/02/23 HTML / CSS
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
英文简历自荐信范文
2013/12/11 职场文书
公积金接收函格式
2015/01/30 职场文书
食品质检员岗位职责
2015/04/08 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
初中同学会致辞
2015/08/01 职场文书