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+iview实现分页及查询功能
Nov 17 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
Vue与React的区别和优势对比
Dec 18 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
vue 动态添加的路由页面刷新时失效的原因及解决方案
Feb 26 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
vue里使用create, mounted调用方法
Apr 26 Vue.js
vue实现简易音乐播放器
Aug 14 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
第七节 类的静态成员 [7]
2006/10/09 PHP
图象函数中的中文显示
2006/10/09 PHP
测试php函数的方法
2013/11/13 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
JavaScript 学习技巧
2010/02/17 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
javascript实现倒计时并弹窗提示特效
2015/06/05 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
[46:55]完美世界DOTA2联赛决赛 FTD vs Phoenix 第三场 11.08
2020/11/11 DOTA
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
实习生自荐信范文分享
2013/11/27 职场文书
会计专业自荐信
2014/06/03 职场文书
债务追讨律师函
2015/06/24 职场文书
教师节简报
2015/07/20 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
关于企业的执行力标语大全
2020/01/06 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
Win11怎样将锁屏账户头像图片改成动画视频
2021/11/21 数码科技
Java无向树分析 实现最小高度树
2022/04/09 Javascript