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 相关文章推荐
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
Jun 04 Javascript
jQuery 对Select的操作备忘记录
Jul 04 Javascript
Js 获取Gridview选中行的内容操作步骤
Feb 05 Javascript
jQuery中的val()示例应用
Feb 26 Javascript
js获取form的方法
May 06 Javascript
js+css实现超简洁的二级下拉菜单效果代码
Sep 07 Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
利用vue重构有赞商城的思路以及总结整理
Feb 21 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
Sep 26 Javascript
解决Vue动态加载本地图片问题
Oct 09 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
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
php微信开发自定义菜单
2016/08/27 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
一个基于jQuery的树型插件(OrangeTree)使用介绍
2012/05/03 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
jquery简单的拖动效果实现原理及示例
2013/07/26 Javascript
前端开发过程中浏览器版本的两种判定方法
2013/10/30 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
在Vue中使用HOC模式的实现
2020/08/23 Javascript
[01:38]完美世界高校联赛决赛花絮
2018/12/02 DOTA
pydev使用wxpython找不到路径的解决方法
2013/02/10 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
Tesserocr库的正确安装方式
2018/10/19 Python
kali中python版本的切换方法
2019/07/11 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
python生成任意频率正弦波方式
2020/02/25 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
高校辅导员推荐信范文
2013/12/25 职场文书
运动会领导邀请函
2014/02/05 职场文书
国旗下的演讲稿
2014/05/08 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
2014年初级职称工作总结
2014/12/08 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
django学习之ajax post传参的2种格式实例
2021/05/14 Python