vue实现todolist功能、todolist组件拆分及todolist的删除功能


Posted in Javascript onApril 11, 2019

•简单todolist功能的实现

用户点击提交按钮时,将input框的内容显示在下方的list中,同时清空list中内容。

<body>
  <div id="root">
    <div>
      <input v-model="inputValue"/>
      <button @click="submit">submit</button>
    </div>
    <ul>
      <li v-for="(item,index) of list" :key="index">{{item}}</li>
    </ul>
  </div>
  <script>
    new Vue({
      el:"#root",
      data:{
        inputValue:'',
        list:[]
      },
      methods:{
        submit:function(){
          this.list.push(this.inputValue);
          this.inputValue=''
        }
      }
    })
  </script>
</body>

“input”输入框和“inputValue”数据双向绑定

通过click事件,来讲"inputValue"中的内容添加到"list"中

向列表中添加数据用 push( )      this.list.pust(this.inputValue)

每次添加"list"后,把input内容清空

•todolist组件拆分

1. Vue.component是全局组件,是vue提供的创建组件的方法。里面可以写模板:template

2. 创建组件之后,可以直接使用。比如创建的组件名字是'todo-item',就可以使用<todo-item></todo-item>

3.

<div id="root">
  <ul>
    <todo-item></todo-item>
  </ul>
</div>
<script>
  Vue.component('todo-item',{
  template:'<li>item<li>'
  })
  new Vue({
    el:"root"
  })
</script>

4.局部组件var TodoItem={}这里只写了部分代码

5.

div id="root">
  <ul>
    <todo-item></todo-item>
  </ul>
</div>
<script>
  var TodoItem={
     template:'<li>item<li>'
  }
  new Vue({
    el:"root",
    components:{
      'todo-item':TodoItem
    } 
  })
</script>

6. 
 如果想在其他vue里面使用这个局部组件,需要在vue里对该局部组件进行注册

7.当用组件来实现最上面的那个todolist功能时,需要进行参数的传递和接收,用content和props

8.

<body>
  <div id="root">
    <div>
      <input v-model="inputValue"/>
      <button @click="submit">submit</button>
    </div>
    <ul>
      <todo-item v-for="(item,index) of list" 
      :key="index" 
      :content="item"
      >
      </todo-item>
    </ul>
  </div>
  <script>
    Vue.component('todo-item',{
      props:['content'],
      template:'<li>{{content}}<li>'
    })
    new Vue({
      el:"#root",
      data:{
        inputValue:'',
        list:[]
      },
      methods:{
        submit:function(){
          this.list.push(this.inputValue)
          this.inputValue=' '
        }
      }
    })
  </script>
</body>

9.

这里面用content来传递item的值,用props来接收content的值。实现数据的传递功能

• todolist的删除功能

1.

继续上面的代码,当点击list数据的时候,实现list的删除功能

2.

首先来捋一下逻辑:创建的最外层的大组件/实例中使用了一个小的组件todoitem,我们可以认为最外层的大组件为父组件,里面的小组件为子组件。

3.

我们在父组件中通过属性的形式给子组件传递了具体的内容,然后子组件进行接收父组件传递的内容,然后在子组件的模板中进行显示。

4.

要想实现子组件中数据的删除,需要删除父组件中对应的数据。当点击子组件的数据时,要实现子组件和父组件的通信,来在父组件中进行删除对应数据的操作。

5.

<body>
  <div id="root">
    <div>
      <input v-model="inputValue"/>
      <button @click="submit">submit</button>
    </div>
    <ul>
      <todo-item v-for="(item,index) of list" 
      :key="index" 
      :content="item"
      :index="index"
      @delete="handleDelete"
      >
      </todo-item>
    </ul>
  </div>
  <script>
    Vue.component('todo-item',{
      props:['content','index'],
      template:'<li @clicl="handleClick">{{content}}<li>',
      methods:{
        handleClick:function(){
          this.$emit('delete',this.index)
        }
      }
    })
    new Vue({
      el:"#root",
      data:{
        inputValue='',
        list=[]
      },
      methods:{
        submit:function(){
          this.list.push(this.inputValue)
          this.inputValue=' '
        },
        handleDelete:function(index){
          this.list.splice(index,1)
        }
      }
    })
  </script>
</body>

总结

以上所述是小编给大家介绍的vue实现todolist功能、todolist组件拆分及todolist的删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
求解开jscript.encode代码的asp函数
Feb 28 Javascript
javascript document.referrer 用法
Apr 30 Javascript
JavaScript入门之对象与JSON详解
Oct 21 Javascript
谈谈关于JavaScript 中的 MVC 模式
Apr 11 Javascript
jquery checkbox 勾选的bug问题解决方案与分析
Nov 13 Javascript
用js实现博客打赏功能
Oct 24 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 Javascript
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
JavaScript模板引擎原理与用法详解
Dec 24 Javascript
玩转Koa之koa-router原理解析
Dec 29 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
Apr 11 #Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 #Javascript
使用Vue父子组件通信实现todolist的功能示例代码
Apr 11 #Javascript
详解jQuery设置内容和属性
Apr 11 #jQuery
js作用域和作用域链及预解析
Apr 11 #Javascript
关于js陀螺仪的理解分析
Apr 11 #Javascript
angular 表单验证器验证的同时限制输入的实现
Apr 11 #Javascript
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
PHP Socket 编程
2010/04/09 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
jQuery实现点击文本框弹出热门标签的提示效果
2013/11/17 Javascript
Jquery给基本控件的取值、赋值示例
2014/05/23 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
nodeJS删除文件方法示例
2016/12/25 NodeJs
Bootstrap面板使用方法
2017/01/16 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
Vue.extend实现挂载到实例上的方法
2019/05/01 Javascript
python开发简易版在线音乐播放器
2017/03/03 Python
Python中常用信号signal类型实例
2018/01/25 Python
python实现数据库跨服务器迁移
2018/04/12 Python
Python之列表实现栈的工作功能
2019/01/28 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Python对象转换为json的方法步骤
2019/04/25 Python
python实现在一个画布上画多个子图
2020/01/19 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
男方婚礼答谢词
2015/01/20 职场文书
学校团代会开幕词
2016/03/04 职场文书
MySQL 分页查询的优化技巧
2021/05/12 MySQL
Linux安装apache服务器的配置过程
2021/11/27 Servers
基于PyQt5制作一个群发邮件工具
2022/04/08 Python