利用vue写todolist单页应用
网上有很多关于vue的todolist小程序。大多是利用vue-cli脚手架工具开发的,这个官网的文档也不支持新手从单文件开始学习。所以用大家熟悉的开发方式写了这个todolist,希望和大家一起学习。
1、vue是啥?
Vue.js(读音/vjuː/,类似于view)是一套构建用户界面的渐进式框架。简单说是一个模板引擎,做过后端的应该很清楚,以前靠服务器端渲染的dom,放在浏览器端端渲染,vue拿到数据渲染成dom.当然vue不仅仅是用来干这个的,数据驱动,数据双向绑定,赋予了用户很好的体验,以及快速的开发,应用的项目的益于维护等。。
2、下面开始代码吧,提前引入vue.js,以及bootstrap。由于没采用vue单文件开发。所以只有一个html文件.
3、为了方便你可以使用cdn来引入你需要的文件。demo使用了localstorage来存放数据。所以你必须开启web端口来浏览。未了方便你可以使用webstorm来开发。否则你直接打开静态页是不能存取数据的。当然这些数据你可以换成从数据库来处理
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scale=1"> <title>vue版todolist</title> <linkrel="stylesheet"href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css"> <scriptsrc="src/vue.js"></script> </head> <style> .isFinish{ background-color:#d58512!important; } .itemcount{ display:block; width:20px; height:20px; text-align:center; line-height:20px; border-radius:10px; float:left; background-color:#d9edf7; } </style> <body> <divclass="containertext-center"id="app"> <h2>{{title}}</h2> <divclass="row"> <divclass="col-md-7"> <formclass="form-horizontal"role="form"> <divclass="form-group"> <labelfor="toitem">添加任务事项</label> <inputclass="form-control"type="text"id="toitem"v-model="newitem"@keyup.enter="addItem()"> </div> <!--<divclass="form-grouptext-left"> <buttonclass="btnbtn-primarybtn-sm">确认添加</button> </div>--> <divclass="list-grouptext-leftform-group"style="margin-top:2em;"> <ahref="#"class="list-group-itemactivetext-left"> 任务清单: </a> <ahref="#"v-for="iteminitems"class="list-group-item"v-on:click="toogleFinsih(item)"> <spanclass="itemcount">{{item.id}}</span> {{item.lable}} <spanclass="badge"v-bind:class="{isFinish:item.isFinish}">√</span> </a> </div> </form> </div> <divclass="col-md-5"> <divclass="panelpanel-default"> <divclass="panel-heading">任务计划:</div> <divclass="panel-body"> 请在一周内完成这些计划! </div> <divclass="panel-footertext-right"> <buttonclass="btnbtn-infobtn-sm"@click="clearItem">清空任务计划</button> </div> </div> </div> </div> </div> <script> //该网站的localStorage的键值,用于存放数据 vartodoList='todolist'; //对localStorage的封装 varlsp=(function(){ return({ add:function(dataval){ //添加数据,键为todolist localStorage.setItem(todoList,JSON.stringify(dataval)); }, get:function(){ //读取键为todolist的数据 returnJSON.parse(localStorage.getItem(todoList)); }, remove:function(){ //移除该站点下键为todolist的数据 localStorage.removeItem(todoList); }, clear:function(){ //清空该站点下的所有localStorage的数据 localStorage.clear(); } }); })(); varapp=newVue({ el:'#app', data:{ title:'任务清单demo', items:lsp.get()||[],//读取数据。如果没有数据赋值为数组[] newitem:''//要添加的数据 }, methods:{ addItem:function(){ varthat=this; this.items.push({ id:that.items.length+1, lable:that.newitem, isFinish:false }); lsp.add(this.items); this.newitem=''; }, toogleFinsih:function(item){ item.isFinish=!item.isFinish; }, clearItem:function(){ this.items=[]; } } }) </script> </body> </html>
github:demo
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。