利用vue写todolist单页应用


Posted in Javascript onDecember 15, 2016

网上有很多关于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来开发。否则你直接打开静态页是不能存取数据的。当然这些数据你可以换成从数据库来处理

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>vue版todolist</title>
  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
  <script src="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>
<div class="container text-center" id="app">

  <h2>{{title}}</h2>
  <div class="row">
    <div class="col-md-7">
      <form class="form-horizontal" role="form">
        <div class="form-group">
          <label for="toitem">添加任务事项</label>
          <input class="form-control" type="text" id="toitem" v-model="newitem" @keyup.enter="addItem()">
        </div>
        <!--  <div class="form-group text-left">
            <button class="btn btn-primary btn-sm">确认添加</button>
          </div>-->
        <div class="list-group text-left form-group" style="margin-top: 2em;">
          <a href="#" class="list-group-item active text-left">
            任务清单:
          </a>

          <a href="#" v-for="item in items" class="list-group-item" v-on:click="toogleFinsih(item)">
            <span class="itemcount">{{item.id}}</span>
            {{item.lable}}
            <span class="badge" v-bind:class="{isFinish:item.isFinish}">√</span>
          </a>

        </div>
      </form>
    </div>
    <div class="col-md-5">
      <div class="panel panel-default">
        <div class="panel-heading">任务计划:</div>
        <div class="panel-body">
          请在一周内完成这些计划!
        </div>
        <div class="panel-footer text-right">
          <button class="btn btn-info btn-sm" @click="clearItem">清空任务计划</button>
        </div>
      </div>
    </div>
  </div>
</div>
<script>
  //该网站的localStorage的键值,用于存放数据
  var todoList = 'todolist';
  //对localStorage的封装
  var lsp = (function () {
    return ({
      add: function (dataval) {
        //添加数据,键为todolist
        localStorage.setItem(todoList, JSON.stringify(dataval));
      },
      get: function () {
        //读取键为todolist的数据
        return JSON.parse(localStorage.getItem(todoList));
      },
      remove: function () {
        //移除该站点下键为todolist的数据
        localStorage.removeItem(todoList);
      },
      clear: function () {
        //清空该站点下的所有localStorage的数据
        localStorage.clear();
      }
    });
  })();
  var app = new Vue({
    el: '#app',
    data: {
      title: '任务清单demo',
      items: lsp.get() || [],//读取数据。如果没有数据赋值为数组[]
      newitem: '' //要添加的数据
    },
    methods: {
      addItem: function () {
        var that = 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
W3C Group的JavaScript1.8 新特性介绍
May 19 Javascript
JS实现淘宝幻灯片效果的实现方法
Mar 22 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
May 05 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
AngularJS 服务详细讲解及示例代码
Aug 17 Javascript
jQuery事件处理的特征(事件命名机制)
Aug 23 Javascript
bootstrap读书笔记之CSS组件(上)
Oct 17 Javascript
WEB前端实现裁剪上传图片功能
Oct 17 Javascript
利用ES6语法重构React组件详解
Mar 02 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
Sep 07 Javascript
JS实现动态星空背景效果
Nov 01 Javascript
HTML元素拖拽功能实现的完整实例
Dec 04 Javascript
jquery插件bootstrapValidator表单验证详解
Dec 15 #Javascript
jQuery中的100个技巧汇总
Dec 15 #Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Dec 14 #Javascript
详解jQuery中的事件
Dec 14 #Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 #Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
Dec 14 #Javascript
node.js报错:Cannot find module 'ejs'的解决办法
Dec 14 #Javascript
You might like
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
javascript函数库-集合框架
2007/04/27 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
简单的js计算器实现
2016/10/26 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
2019/08/11 Javascript
javascript 模块依赖管理的本质深入详解
2020/04/30 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
python 函数内部修改外部变量的方法
2018/12/18 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
python实现自动化报表功能(Oracle/plsql/Excel/多线程)
2019/12/02 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
Python测试框架:pytest学习笔记
2020/10/20 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
什么是反射?如何实现反射?
2016/07/25 面试题
运动会100米解说词
2014/01/23 职场文书
料理师求职信
2014/01/30 职场文书
研究生简历自我评
2015/03/11 职场文书
物业公司管理制度
2015/08/05 职场文书