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 相关文章推荐
SharePoint 客户端对象模型 (一) ECMA Script
May 22 Javascript
JavaScript中的console.time()函数详细介绍
Dec 29 Javascript
JSON字符串转JSON对象
Jul 31 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
文件上传,iframe跨域数据提交的实现
Nov 18 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 Javascript
AngularJS中使用ngModal模态框实例
May 27 Javascript
详解vue项目首页加载速度优化
Oct 18 Javascript
react 应用多入口配置及实践总结
Oct 17 Javascript
vue过滤器实现日期格式化的案例分析
Jul 02 Javascript
如何基于jQuery实现五角星评分
Sep 02 jQuery
vue-cli3项目配置eslint代码规范的完整步骤
Sep 10 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 array_reverse() 函数原理及实例解析
2020/07/14 PHP
Javascript的闭包
2009/12/31 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
jQuery 阴影插件代码分享
2012/01/09 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
js图片滚动效果时间可随意设定当鼠标移上去时停止
2014/06/26 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
SVG描边动画
2017/02/23 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
Vue2.0 实现页面缓存和不缓存的方式
2019/11/12 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
让python 3支持mysqldb的解决方法
2017/02/14 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
详解重置Django migration的常见方式
2019/02/15 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
python selenium自动化测试框架搭建的方法步骤
2020/06/14 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
甜品蛋糕店创业计划书
2014/09/21 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
python tkinter模块的简单使用
2021/04/07 Python
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python