简介备忘录设计模式(MementoDesignPattern)也叫作快照(Snapshot)模式,主要用于实现防丢失、撤销、恢复等功能。其定义是,在不违背封装原则的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象先前的状态。典型实现首先,定义一个备忘录Memento类存储
写代码的时候遇到这个问题了,在这里复习一下非箭头函数非箭头函数的this指向比较好理解,就是调用这个函数的对象,举个栗子:varobj={foo:{bar:3,foo:{bar:4,foo:functiona(){console.log(this.bar)},},},bar:2};varfoo=ob
前一段时间做项目,频繁使用到上传图片组件,而且只上传一个封面,于是想着自定义一个图片封面上传组件。先来看一下效果: 第一张图片是上传之前,第二张图片是上传成功
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助视频通话SDK用的即构的,uniapp插件市场地址推送用的极光的,uniapp插件市场地址即构音视频SDKuniapp插件市场的貌似是有些问题,导入不进项目,直接去官网下载,然后放到项目下的nativeplugins目录下,在配置文件中填入
目录搭建vue脚手架环境创建脚手架环境的项目新建的vue项目目录文件介绍分析项目文件中的main.js文件vue.config.js配置文件ref属性props配置项mixin(混入)插件scoped样式总结TodoList案例webStorage组件的自定义事件全局事件总线(任意组件间的通信)(G
现在的很多程序应用,基本上都是需要多端覆盖,因此基于一个WebAPI的后端接口,来构建多端应用,如微信、H5、APP、WInForm、BS的Web管理端等都是常见的应用。本篇随笔继续分析总结一下项目开发的经验,针对页面组件化开发经验方面进行一些梳理总结,内容包括组件的概念介绍,简单页面组件的抽取开发
概述Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。目前公司项目中主要采用Hutool作为项目的工具包,相对于google的guava,hutool的工具类采用中文注释,更加符合国
本文盘点ECMAScript2022中的新特性,包括顶级等待、RegExp匹配索引、新的公共和私有类字段等。一、公共和私有实例字段最新的ES13规范允许我们将成员字段内联定义为类主体的一部分,我们可以使用#来表示私有字段。复制classFoo{title="";#artist="";construc
在一些优秀的开源框架,如Angular、Nest.js、Midway中会看到一种常见的写法 @符号+方法名,做为一个只有JavaScript经验的开发者第一次看到这种写法还是感觉挺新奇的。一个@符号开头+方法名,这种写法正是JavaScript中的装饰器Decorators,它附加在我们定
前言当我们对函数进行实例化时,需要用new操作符来实现。那么,对于它的底层实现原理你是否清楚呢?原理分析我们通过一个具体的例子来看下一个函数在new之后都能做些什么,如下所示:复制functionPerson(name,age){this.name=name;this.age=age;this.he
前言在上一篇文章中,我们基于DOM体系构建了超级玛丽。线上体验地址:考虑到有些同学对canvas不是很熟悉。本文将会对canvas的一些基础做一些大致的讲解。canvas基础知识画布元素canvas标签可以让我们能够使用JavaScript在网页上绘制各种样式的图形。要访问实际的绘图接口,首先我们需
大家好,我是前端西瓜哥。今天我们来看一道JS编程题。问题实现一个LazyMan,可以按照以下方式调用:复制LazyMan("Hank")输出:Hi!ThisisHank!LazyMan("Hank").sleep(10).eat("dinner")输出Hi!ThisisHank!//等待10秒..W
前言记得几年前刚做前端开发的时候,跟着师傅用纯es5实现了这款坦克大战,可以说我入行前端是从javaScript小游戏开始的,时间已匆匆过去了数年,前端发展日新月异,各种新框架、新概念层出不穷,很容易就迷失在对各种新技术的盲目学习和应用中,真正的编程是什么呢?值得思考的问题。我准备用vue3重新实现
下文三个装饰器,都是利用了async/await把异步变成同步的特性实现的。要求被装饰的方法必须写成async/await,用起来十分方便,实现彻底被隐藏在了装饰器内部。前两个都是用在ts环境下class写法的vue里的。不过看清楚逻辑后,很容易修改成可以用在js环境中的vue组件上。1.给vue添
前言:这是我3月22日写的线性求解器gecode的笔记。我喜欢gecode的文档,也很喜欢它简洁流畅的C++源码。计划赶不上变化快,当时兴致勃勃的我,真的想不到,3月22日是我这五个月来最后一次写这么工整的笔记;之后我便陷入一场极大的拉锯战中——无暇再打开这个笔记(甚至都给忘了,这几天整理资料才想起
箭头函数是必须要掌握的,今天我们一起来学习一下,它给开发者带来方便的同时,也要留意它的「无能」。先看一个例子:复制const names = [ 'wsy', &nb
为了保证的可读性,本文采用意译而非直译。在执行I/O操作(例如数据提取)时,要先发送网络请求,然后等待响应,接着将响应数据保存到组件的状态,最后进行渲染。在React中生命周期方法、Hooks和Suspense是获取数据的方法。接下用事例演示一下如何使用它们并说明每种方法的优点和缺点,以
一、this原理this是JavaScript的一个关键字,函数调用时才会出现;因为函数是在一定的环境中运行的,调用函数时肯定需要知道是[谁调用的]?就用到了this进行指向;那么this到底指向的是什么?this既不指向函数自身,也不指函数的词法作用域,而是调用函数时的对象!二、使用场
一、使用@ControllerAdvice和@ExceptionHandler处理全局异常这是目前很常用的一种方式,非常推荐。测试代码中用到了Junit5,如果你新建项目验证下面的代码的话,记得添加上相关依赖。1.新建异常信息实体类非必要的类,主要用于包装异常信息。src/main/java/com
对于vue来说,组件是非常常见的,有很多平台都封装了了属于自己一套的组件,如elementui、weui等等。同时组件之间的消息传递也是非常重要的,下面是我对组件之间消息传递的各种方式的总结,共有8种方式。如有不足之处,可以留言补充,互相学习。1.props和$emit这是最最常用的父子组件通信方式