vue的简单用法

设计

image.png

1、输入框输入待做事件,回车之后展示在下面的列表里
2、已经完成的待做事件,下面会出现下划线。没有做完的事件则不会出现
3、点击未完成待做事件,则表示已经完成了这个事情,则下面会出现下划线。点击已完成事件,下划线消失,表示这个事情没有完成
4、刷新页面,这些待做的事情列表还能继续展现,而不能消失,这意味着需要把信息存储到浏览器上本地上

@keyup.enter 表示绑定回车事件
v-for:遍历
v-on:click:点击事件
:class:绑定css样式
v-model:将input值和vue双向绑定。即input值名为message

App.vue

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <p>{{msg}}</p>
    <input @keyup.enter="addTask" v-model="message">
    <ol>
      <li v-for='item in list' :class="{finish:item.isfinish}" v-on:click="doThis(item)" >
        {{item.label}}
      </li>
    </ol>
  </div>
</template>

<script>
import Store from "./store" //引入store。js文件

export default {
  data:function(){
    return{
      msg:'this is my todo list',
      list:Store.fetch(),
      message:""
    }
  },
  watch:{ //监听list值发生变化的事件
    list:{
      handler: function (list) {
        Store.save(list);
      },
      deep: true  //为true,isfinish变化也能被触发该事件
    }
  },
  methods: {
    doThis:function(item){
      //点击事件,改变item的isfinish
      item.isfinish = !item.isfinish
    },
    addTask:function(){ //回车事件,将输入框中的内容放入lists集合中,再清空输入框
      this.list.push({label:this.message,isfinish:false})
      this.message = ""
    }
  }
}
</script>

<style>
  .finish{
    text-decoration:underline
  }
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

Store.js

const STORAGE_KEY = 'todos-vuejs'
export default { //相当于输出匿名对象
    fetch:function (){
        //返回存储到客户端的localStorage的数据,若没有则返回[]
        return JSON.parse(window.localStorage.getItem(STORAGE_KEY  || '[]') ) 
    },
    save:function (items){
        //存储内容到localStorage,并把数据转成json格式的string类型
        window.localStorage.setItem(STORAGE_KEY,JSON.stringify(items))
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,474评论 0 29
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,083评论 19 139
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 13,801评论 4 129
  • 今天听了一场非常精彩的面试,确切的说是一个创业公司的理念被辩驳。虽然说在没经过时间的检验之前说什么都是白扯,...
    生虎日记阅读 1,778评论 0 0
  • 一大早,我就在广场看到了傍晚的夕阳 还有矗立的雕像, 在黄昏中闪闪发亮 眼前有个女人, 她穿着合脚的高跟鞋蹩脚的走...
    第二十一年冬至Y阅读 1,778评论 0 0

友情链接更多精彩内容