Vuejs学习(一)简要的TODOList
2016-05-26 20:52
609 查看
这几天都在看vuejs的相关教程,配合着后面实例进行学习。本来昨天已经写了第一篇,但是后来发现官网API 之后,果断删掉了。自己在编写时遇到的各种问题,对着API基本可以找到原因及解决办法。以下部分以官方实例的todoMVC为例,记录自己的思路。
Vuejs简化了DOM操作,基本数据绑定在html上,提供一个Vue实例来实现数据、方法等的定义。在这个过程中,基本不会涉及到js中常见的作用域问题,作用域链也无需考虑。在声明的Vue实例中使用this关键字可以容易的得到其中的数据,而在所在的html中,可以直接使用定义在实例中的各种字段。
分析这个TODOList,不难发现其中有三个部分,上面的输入和下面的展示的详细内容,剩余最后的一个归总部分。其中中间部分由于和实际数据相关,复用可能较大,需要使用组件实现。这里,我直接使用默认,不涉及到具体组件定制。整个html的代码如下:
接下来按照所需绑定数据即可:
本例中,实现了以下功能:
* 动态添加需要做的事情;
* 利用filterBy过滤器实现输入时查询已有数据,确保新加任务不存在;
* 支持事件的已完成标注和删除标注;
最终结果如下图:
Vuejs简化了DOM操作,基本数据绑定在html上,提供一个Vue实例来实现数据、方法等的定义。在这个过程中,基本不会涉及到js中常见的作用域问题,作用域链也无需考虑。在声明的Vue实例中使用this关键字可以容易的得到其中的数据,而在所在的html中,可以直接使用定义在实例中的各种字段。
分析这个TODOList,不难发现其中有三个部分,上面的输入和下面的展示的详细内容,剩余最后的一个归总部分。其中中间部分由于和实际数据相关,复用可能较大,需要使用组件实现。这里,我直接使用默认,不涉及到具体组件定制。整个html的代码如下:
<div id="demo"> <input type="text" placeholder="what needs to be done?" v-model="newLabel"><button @click="add(newLabel)">add</button><br> <template v-for="item in remains|filterBy newLabel"> <button @click="finish(item)">Y</button><span :class="ifContains(item,completed)?'finished':'no'">{{item}}</span><button @click="del(item)">X</button><br> </template> <h4>{{remains.length}} left undeleted. {{active.length}} left to deal. {{completed.length}} has been done.</h4> </div>
接下来按照所需绑定数据即可:
var vm=new Vue({ el:'#demo', data:{ remains:[], completed:[], newLabel:'', active:[]/*这里不能讲active数组注册为计算属性,否则两者将同步变化*/ }, methods:{ del:function(item){ if(this.ifContains(item,this.completed)){ this.completed.$remove(item); } this.remains.$remove(item); }, finish:function(item){ if(!this.ifContains(item,this.completed)){ this.active.$remove(item); this.completed.push(item); } }, add:function(item){ if(!this.ifContains(item,this.remains)){ this.remains.push(item); this.active.push(item); this.newLabel=''; } }, ifContains:function(item,items){/*由于html中要使用此方法判断是否已完成来实现动态CSS,否则建议定义在外部*/ for(var i of items) if(item===i) return true; return false; } } });
本例中,实现了以下功能:
* 动态添加需要做的事情;
* 利用filterBy过滤器实现输入时查询已有数据,确保新加任务不存在;
* 支持事件的已完成标注和删除标注;
最终结果如下图:
相关文章推荐
- easyui------显示隐藏列功能
- AS3.0实例学习 熟悉新的事件机制和addChild的运用
- Web前端新人笔记之jquery入门心得(新手必看)
- 浅谈web标准、可用性、可访问性 3ff8
- Web可读性的三个层次
- 【汇】Web前端优化(雅虎、谷歌最佳实践手册)
- web前端响应式设计总结
- JavaScript中document的用法
- Web前端研发工程师编程能力飞升之路
- 11款实用的一句话网站设计代码
- “Hello World” 这个程序的起源与历史
- 前端新人该如何入门和提高
- 前端的性能优化都有哪些东西?
- HTML5 localStorage本地儲存
- 百度-web前端面试
- web前端开发工程师需要学习的技能
- 1.html的基本概念的学习
- 想学前端,为什么不看这些书呢?
- web前端工程师面试题综合整理