Vue实现todo应用的示例


Posted in Vue.js onFebruary 20, 2021

背景

首先声明,本人并不是前端大神,看过我之前的内容应该知道,我擅长做后端,虽然前端略有涉略,但谈不上精通,连熟悉都勉强。写这个系列的目的仅仅只是出于好奇,好奇为何前几年还是JQuery一统天下的前端局面如今为何如此混乱,好奇好好的js是如何被玩的亲妈都不认识,之所以选择vue作为切入点,完全是因为vue简单,基本看下demo就能入门,既然vue作为目前流行的前端三大框架之一,那么只要了解vue是怎么实现的,是不是对前端稍微有了一点认识,于是在这种想法的促使下,有了这个系列。

这里模仿vue并不是指我把vue的源码看了一遍,看懂了然后模仿vue写,而是语法还是vue的语法,但是实现我自己想办法实现,当然可以参考vue,但以我前端的水平想完全看懂vue难度有点大,所以如果你想了解vue源码实现,这个系列不适合你,但如果你和我一样,稍微会点js,又对vue源码无从下手,但又想知道如何实现跟vue一样的功能,那么就跟着我一起,我们不看源码,自己琢磨实现一个简单的vue。

vue实现todo应用

本系列的思路是,用vue实现一个简单应用,应用中用到vue相关核心功能,然后代码保持不变,把vue.js文件替换成我们自己的实现,最终达到和vue一样的效果。这里用vue实现一个超简单的todo应用,代码如下:

<html>  
<head>  
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>  
</head>  
<body>  
    <div id="app">  
        <input v-model="newTodo"></input>  
        <button v-on:click="addTodo()">添加</button>  
        <div>输入的文字:{{newTodo}}</div>  
        <ul>  
            <div v-for="(todo,index) in todos" style="margin-bottom: 20px;">  
                <li style="float: left;margin-right: 20px;">  
                    {{todo.text}}  
                </li>  
                <button v-on:click="deleteTodo(index)">删除</button>  
            </div>  
        </ul>  
    </div>  
    <script>  
        var appx = new Vue({  
            el: '#app',  
            data: {  
                newTodo: '',  
                todos: []  
            },  
            methods: {  
                addTodo: function () {  
                    this.todos.push({ text: this.newTodo });  
                    this.newTodo = '';  
                },  
                deleteTodo: function (index) {  
                    this.todos.splice(index, 1);  
                }  
            }  
        })  
    </script>  
</body>  
</html>  

效果如下:

Vue实现todo应用的示例

  • 输入框值发生变化时,在输入框下方会显示输入的内容(仅仅为了演示效果,忽略实际意义)
  • 每输入一条新的todo,下面就会多一项列表项
  • 点击列表项右边删除按钮可以删除当前列表项

demo虽然简单,但包含了vue所有核心功能

  • 双向值绑定(v-model)
  • 响应式,值发生变化,绑定的节点值也同步变化
  • 事件响应(v-on:click)
  • 循环指令(v-for)

后面的章节,我们不引入vue.js文件,一步步实现同样的功能。

以上就是Vue实现todo应用的示例的详细内容,更多关于Vue实现todo应用的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
详解Vue router路由
Nov 20 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
vue中div禁止点击事件的实现
Apr 02 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
vue自定义右键菜单之全局实现
Apr 09 Vue.js
vue 自定义组件添加原生事件
Apr 21 Vue.js
基于vue的video播放器的实现示例
Feb 19 #Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 #Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 #Vue.js
Vue如何实现变量表达式选择器
Feb 18 #Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 #Vue.js
如何在 Vue 中使用 JSX
Feb 14 #Vue.js
Vue单页面应用中实现Markdown渲染
Feb 14 #Vue.js
You might like
检测png图片是否完整的php代码
2010/09/06 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
用 JavaScript 迁移目录
2006/12/18 Javascript
javascript 面向对象全新理练之继承与多态
2009/12/03 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
JS之相等操作符详解
2016/09/13 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
jquery延迟对象解析
2016/10/26 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
Vue2.0生命周期的理解
2018/08/20 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
python异常和文件处理机制详解
2016/07/19 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
python下载图片实现方法(超简单)
2017/07/21 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
财务管理专业求职信
2014/06/11 职场文书
2015年仓库工作总结
2015/04/09 职场文书
建国大业观后感
2015/06/01 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
聊聊redis-dump工具安装问题
2022/01/18 Redis