Vue如何封装一个TodoList

本篇文章给大家详细介绍一下vue封装一个todolist的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

Vue如何封装一个TodoList

在这里插入图片描述

使用Vue封装一个简易的Todolist的小案例. 同时加入了浏览器本地缓存的技术手段.

浏览器本地缓冲:

前提: 一般我们定义的变量,或者用Vuex保存的数据, 当浏览器进行了一个刷新 那么这个数据就会丢失, 这样就做不出历史记录的效果了, 但是, 使用浏览器缓存就可以帮助我们解决这个问题…

浏览器缓存分为二种 sessionStorage 和 localStorage, 二种原型链分别如下:

立即学习“前端免费学习笔记(深入)”;

在这里插入图片描述

在这里插入图片描述
可以看得出, 他们的原型链上基本都是一样的, 唯一的区别在于

localStorage 作用于本地缓存, 时间是持久的,除非手动去删除, 或者清空, 不然一直都存在浏览器中

sessionStorage 作用与会话缓存, 生命周期只存在于本次打开浏览器会话, 当完成的关闭浏览器,那么信息就会丢失, 而仅仅刷新页面, 数据仍然保存。

本次实例,使用的是 sessionStorage, 并对此进行了一次小封装.

const  storage = {set(key, value){window.sessionStorage.setItem(key, JSON.stringify(value));},get(key){return JSON.parse(window.sessionStorage.getItem(key));},remove(key){window.sessionStorage.removeItem(key);}}export default storage;

登录后复制

实例代码:

TodoList

正在进行...{{dolistNumber}}

X

已经完成...{{dolist.length - dolistNumber}}

X

import storage from '../storage.js';export default {name: "todoList",data() {return {keyword: "", // 输入的选项dolist: [],}},computed:{dolistNumber(){return this.dolist.filter(item => item.checked === false).length;}},methods: {handleChecked(){// 当更改状态之后 重新刷新storage.set('dolist', this.dolist);},handleList() {if (this.keyword !== "") {this.dolist.push({title: this.keyword,checked: false,});this.keyword = "";storage.set('dolist', this.dolist);}},cancalDo(index) {// 删除这个this.dolist.splice(index, 1);storage.set('dolist', this.dolist);}},mounted(){let dolist = storage.get('dolist');if(dolist){this.dolist = dolist;}},}.todo {margin: 400px auto;min-height: 300px;width: 800px;background-color: #eee;}.todo header {position: relative;text-align: center;height: 60px;line-height: 60px;font-size: 20px;border-bottom: 2px solid #fff;}.todo header input {position: absolute;left: 40px;top: 50%;transform: translateY(-50%);outline: none;line-height: 30px;border-radius: 15px;padding-left: 30px;border: 1px solid #999;font-size: 16px;width: 100px;transition: all .6s linear;}.todo header input:focus {width: 200px;}.dolist {padding: 20px;font-size: 16px;}.dolist label {cursor: pointer;}.dolist input {margin-right: 10px;}.dolist span:last-child {float: right;border: 1px solid gray;background-color: #999;color: #fff;border-radius: 50%;padding: 5px;}h4 {padding-bottom: 20px;text-align: center;}

登录后复制

推荐学习:vue.js教程

以上就是Vue如何封装一个TodoList的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3020354.html

(0)
上一篇 2025年3月13日 05:36:21
下一篇 2025年3月13日 00:51:56

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何在vue中使用umy-ui

    本篇文章给大家详细介绍一下在vue中使用umy-ui的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 1.下载umy-ui      http://www.umyui.com/ npm install  umy-ui…

    2025年3月13日
    200
  • vuex使用场景是什么

    vuex使用场景:1、用户的个人信息管理模块;2、电商项目的购物车模块;3、我的订单模块,订单列表中点击取消订单,然后更新对应的订单列表;4、在订单结算页,获取需要的优惠券,并更新订单优惠信息。 本教程操作环境:windows7系统、vue…

    2025年3月13日
    200
  • vue组件传值的方法有哪些

    vue组件传值的方法:1、父向子传值使用props;2、子向父传值使用“$emit”;3、使用EventBus或Vuex进行兄弟传值;4、使用“provide/inject”或“$attrs/$listeners”方法进行跨级传值。 本教程…

    2025年3月13日
    200
  • vue传值有哪8种方法

    传值方式有:props和“$emit”、“$attrs”和“$listeners”、中央事件总线、v-model、provide和inject、“$parent”和“$children”、vuex、localStorage/session。…

    2025年3月13日
    200
  • vue组件中如何引入css文件

    在vue中,可以使用“@import”规则引入css文件,只需要在style标签中添加“@import css样式地址”即可。“@import”规则用于从其他样式表导入样式规则,该规则必须先于所有其他类型的规则。 本教程操作环境:windo…

    2025年3月13日
    200
  • 2022年值得收藏的17个Vue 后台管理模板

    本篇文章给分享17个值得收藏的vue后台管理模板。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关推荐:《vue.js教程》 后面的模板是我们做后台管理系统经常所需要的东西。 虽然,我们总可以花很多时间从头开始设计自己…

    2025年3月13日 编程技术
    200
  • vue兄弟组件传值有哪五种方法

    五种方法为:1、父组件向子组件进行传值;2、子组件向父组件进行传值;3、父组件中的标签上定义自定义事件,在事件内部获取参数;4、在子组件中触发自定义事件,并传参;5、通过公共组件Bus.js,进行传参。 本教程操作环境:windows7系统…

    2025年3月13日
    200
  • vue路由跳转的三种方式是什么

    跳转方式:1、使用“”语句;2、使用“this.$router.push({ path:’/user’})”语句;3、使用“this.$router.replace{path:’/’}”语句。 本教程操作环境:win…

    2025年3月13日
    200
  • $nextTick VS setTimeout,看看它们的差异

    本篇文章给大家简单对比一下$nexttick 与 settimeout,看看它们之间有什么差异。 一个前端开发人员(小智)走进了一个Vue酒吧。小智点了他最喜欢的鸡尾酒:Nuxt。酒保正在努力制作中。然后他自己就唠叨了起来。 小智讲述了他是…

    2025年3月13日
    200
  • vue怎么引用css

    vue引用css的方法:1、全局引入,语法格式为“import ‘css文件地址’”;2、局部引入,语法格式为“@import ‘css文件地址’;”。 本教程操作环境:windows7系统、…

    2025年3月13日
    200

发表回复

登录后才能评论