Vue中TodoList案例_本地存储

这篇具有很好参考价值的文章主要介绍了Vue中TodoList案例_本地存储。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

App.vue

<template>
  <div id="root">
    <div class="todo-container">
      <div class="todo-wrap">
        <MyHeader :addTodo="addTodo"/>
        <MyList :todos="todos" :checkTodo="checkTodo" :deleteTodo="deleteTodo"/>
        <MyFooter :todos="todos" :checkAllTodo="checkAllTodo" :clearAllTodo="clearAllTodo"/>
      </div>
    </div>
  </div>

</template>

<script>
import MyHeader from './components/MyHeader'
import MyList from './components/MyList'
import MyFooter from './components/MyFooter'

export default {
  name:'App',
  components:{MyHeader,MyList,MyFooter},
  data(){
    return{
      todos:JSON.parse(localStorage.getItem('todos')) || []
    }
  },
  methods:{
    //添加一个todo
      addTodo(todoObj){
        this.todos.unshift(todoObj)
    },
    //勾选or取消勾选一个todo
    checkTodo(id){
        this.todos.forEach((todo)=>{
          if (todo.id===id)todo.done=!todo.done
        })
    },
    //删除一个todo
    deleteTodo(id){
        this.todos = this.todos.filter((todo)=>{
            return todo.id !==id
        })
    },
    //全选or取消全选
    checkAllTodo(done){
        this.todos.forEach((todo)=>{
          todo.done = done
        })
    },
    //清除所有已经完成的todo
    clearAllTodo(){
      this.todos = this.todos.filter((todo)=>{
        return !todo.done
      })
    }
  },
  watch:{
    todos:{
      deep:true,
      handler(value){
        localStorage.setItem('todos',JSON.stringify(value))
      }
    }
  }
}
</script>

<style>
/*base*/
body {
  background: #fff;
}

.btn {
  display: inline-block;
  padding: 4px 12px;
  margin-bottom: 0;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
  border-radius: 4px;
}

.btn-danger {
  color: #fff;
  background-color: #da4f49;
  border: 1px solid #bd362f;
}

.btn-danger:hover {
  color: #fff;
  background-color: #bd362f;
}

.btn:focus {
  outline: none;
}

.todo-container {
  width: 600px;
  margin: 0 auto;
}
.todo-container .todo-wrap {
  padding: 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
}
</style>

效果:数据存储再localStroage中,刷新浏览器保存的数据仍在。 

Vue中TodoList案例_本地存储,linerVue,vue.js,javascript,css

 文章来源地址https://www.toymoban.com/news/detail-606149.html

到了这里,关于Vue中TodoList案例_本地存储的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue中TodoList案例_动画

    MyItem.vue :  主要是引入了import \\\'animate.css\\\'样式库,animate.css样式库配置见上一篇文章animate.css样式库,然后再li标签外套了transition标签,引用了name里面的名称是animate.css拿过来的,绑定了enter-active-class和leave-active-classanimate库内自带的绑定样式  

    2024年02月15日
    浏览(34)
  • Vue中TodoList案例_勾选

    与上一篇Vue中TodoList案例_添加有三个文件变化了 App.vue :中加了checkTodo方法 MyList.vue :中拿到checkTodo,再传给MyItem MyItem.vue: 定义change改变时候触发方法将id传给App.vue 效果 :勾选时候数据动态变化  

    2024年02月16日
    浏览(33)
  • Vue本地存储及用法

    目录 1.本地存储是什么? 2.本地存储的应用场景 3.存储的使用 4. 练习用法 1.本地存储是什么?         以文件的方式存储在本地,通过把数据存在浏览器中,用户不必每次都向服务器请求 获取同一个信息。在你离线时,使用本地存储的数据而不是向远端服务器上请求 数

    2024年02月09日
    浏览(50)
  • Vue中如何进行本地存储(LocalStorage)

    在Vue.js应用程序中,本地存储(LocalStorage)是一个强大的工具,用于在浏览器中保存和检索数据。它允许您在不使用服务器或后端数据库的情况下,在用户的浏览器中存储数据,以实现数据的持久性。本地存储对于保存用户首选项、用户身份验证令牌、购物车数据等场景都非

    2024年02月07日
    浏览(48)
  • Vue CLI 本地存储 自定义事件

    存储内容大小一般支持 **5MB **左右(不同浏览器可能还不一样) 浏览器端通过 Window.sessionStorage 和 Window.localStorag e属性来实现本地存储机制 相关API xxxStorage.setItem(‘key’, ‘value’) :该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的

    2024年02月07日
    浏览(34)
  • vue.js前端框架应用案例

    Vue.js 是一种流行的前端框架,它可以帮助开发者构建单页应用(SPA)和复杂的用户界面。以下是几个 Vue.js 的案例,涵盖了不同领域的应用: Vue.js 官方文档 :Vue.js 的官方文档本身就是一个使用 Vue.js 构建的项目。它展示了 Vue.js 的各种功能和最佳实践,包括组件、指令、混

    2024年02月21日
    浏览(50)
  • 前端本地存储方案-localForage-vue3中使用

    前端有多种本地存储方案可供选择,常见的有: Cookie:小型的文本文件,存储少量数据 Web Storage :包括:localStorage和sessionStorage,存储数据有上限(5M)左右 IndexedDB:一种高级的客户端存储API,存储量大、高版本浏览器兼容性较好 这些本地存储方案各有优缺点,近期发现一

    2024年02月02日
    浏览(47)
  • vue-使用JSEncrypt对密码本地存储时加解密

    前言 在实际开发中需要对一些敏感信息进行加解密(本地存储时),不如密码,身份证号,公司社会码 其实像这种普遍经常用的功能,一般都是有第三方包拿来直接用的比如jsencrypt-提供好方法 我们可以根据提供的网址跟换密钥对 下面我们就已开源项目若依前后端分离项目

    2024年02月16日
    浏览(56)
  • JavaScript 框架比较:Angular、React、Vue.js

    在 Web 开发领域,JavaScript 提供大量技术栈可供选择。其中最典型的三套组合,分别是 MERN、MEAN 和 MEVN。这些首字母相同的选项各自代表不同的技术加工具组合。为了在这些技术栈中做出明智选择,让我们先从核心组件聊起,再对各自前端框架(React、Angular 和 Vue)进行简化比

    2024年01月20日
    浏览(59)
  • 【js&vue】联合gtp仿写一个简单的vue框架,以此深度学习JavaScript

    lifecycle.js 注解: this.$options.beforeMount.call(this);与 this.$options.beforeMount();有什么区别: call(this)  的作用是将当前对象( this )作为参数传递给  beforeMount  方法,使得在  beforeMount  方法内部可以通过  this  访问到当前对象的上下文 直接调用了  beforeMount  方法,没有指定上下

    2024年02月09日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包