vue页面加载完毕之后执行
好奇心造就科学家和诗人。——法朗士
当vue页面加载完成后触发
我们在html开发中经常是使用window.onload实现
window.onload = () => { }
但在vue中我们使用this.$nextTick
this.$nextTick(() => { console.log("页面加载完啦~")})
效果如下
集成wangEditor
寿命的缩短与思想的虚耗成正比。——达尔文
官方文档
wangEditor:Typescript 开发的 Web 富文本编辑器, 轻量、简洁、易用、开源免费
html里集成wangEditor非常简单
<div id="div1"></div><script src="https://unpkg.com/wangeditor/dist/wangEditor.min.js"></script><script> var E = window.wangEditor; var editor = new E("#div1"); editor.create();</script>
只需要上方几行代码即可完成
如果我们需要获取富文本中的内容
使用editor.txt.html()即可
html+vue组件实现阿里云OSS对接
任何问题都有解决的办法,无法可想的事是没有的。──爱迪生
问题场景:一个thymeleaf项目,上传图片、视频是直接使用Java代码保存到服务器上于是服务器压力激增,网页静态资源变得卡顿于是我们需要将图片、视频上传移植到阿里云OSS上
阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。
一句话描述:它是一个很棒的存取文件的在线服务器
我们可以使用它进行客户端上传,文件不通过服务端也可以上传,这样减轻了我们服务端压力
我们需要一系列配置才可以对接完成,查阅阿里云OSS官方文档发现:JavaScript客户端签名直传的方式最为简单,但这种方式是有弊端的,客户端通过JavaScript把存取文件的认证信息写在代码里面有泄露的风险因此我们采用服务端签名后直传的方式进行上传文件,我们待会儿介绍~
准备工作:
登录阿里云官网。将鼠标移至产品,单击对象存储 OSS,打开 OSS 产品详情页面。在 OSS 产品详情页,单击立即开通。开通服务后,在 OSS 产品详情页单击管理控制台直接进入 OSS 管理控制台界面。您也可以单 ...
字符和Ascii码的互转
对我们帮助最大的,并不是朋友们的实际帮助,而是我们坚信得到他们的帮助的信念。——伊壁鸠鲁
我们可以使用多种方式去获取一个字符的ascii码
System.out.println(new Character('A').hashCode());System.out.println(Character.hashCode('A'));System.out.println((int) 'A');System.out.println((int) new Character('A'));
也可以反过来通过ascii码获取对应的字符
System.out.println((char) 65);System.out.println(new Character((char) 65));System.out.println((Character) (char) 65);System.out.println((Character) (char) (int) new Integer(65));
其实两者就算==一下
Sy ...
一个学习设计模式的网站
智的人决不坐下来为失败而哀号,他们一定乐观地寻找办法来加以挽救——莎士比亚
就是这个网站啦
https://refactoringguru.cn/
目录还是比较全的,包括有很多的例子
在我看来是干货满满啊~
collect补充
青年之文明,奋斗之文明也,与境遇奋斗,与时代奋斗,与经验奋斗。故青年者,人生,人生之春,人生之华也。——李大钊
书接上文,我们讲到并行流场景下三个参数的reduce会有一个坑
同理,在collect函数中也有这个坑
我们先使用普通流去做
// 生成1-100List<Integer> list = Stream.iterate(1, i -> ++i).limit(200).collect(Collectors.toList());System.out.println(list);// 使用collect函数进行转换为List<Map<Integer,Integer>>,包含值和线程idList<Map<String, Object>> result = list.stream().collect(() -> { System.out.println("第一个参数:Supplier,我们返回一个带初始值的List,放进去三个负数"); Map<String, Ob ...
reduce补充二
人生要有意义只有发扬生命,快乐就是发扬生命的最好方法。——张闻天
关于reduce我已经写过博客了
今天最后再来聊一聊它的第三个重载
之前一直用得少,所以没有去探究它的妙用
最近稍微抽空看了下
发现还挺有意思的
例如它的第三个参数
在并行流的场景下同样的代码竟有不同的效果
如下:
public static void main(String[] args) { sum(); parallelSum();}private static void sum() { List<Integer> list = Stream.generate(() -> 1).limit(100).collect(Collectors.toList()); System.out.println(list); int sum = list.stream().reduce(1, Integer::sum, (a, b) -> { System.out.println("stream执行sum时上 ...
parallelStream
我又愿中国青年只是向上走,不必理会这冷笑和暗箭。——鲁迅
我们在开发中经常使用stream去处理我们的集合
这里分享一个并行流:parallelStream
它可以允许我们的声明式编程以多线程并行的方式执行
首先我们可以比较一下性能
List<Integer> list = new SecureRandom().ints().limit(10000000).boxed().collect(Collectors.toList());long startTime = System.nanoTime();// 求和操作int sum = list.stream().mapToInt(Integer::intValue).reduce(0, Integer::sum);System.out.println("普通stream求和结果:" + sum);long normalStreamEndTime = System.nanoTime();System.out.println("普通stream耗时:" + ((normalStreamE ...
redis的manager层应用
一身报国有万死,双鬓向人无再青。 —— 陆游
封装了一个操作redis的管理层,简单处理了缓存穿透、击穿、雪崩问题
Manager
package com.ruben.manager;import com.alibaba.fastjson.TypeReference;import java.util.function.Supplier;/** * redis管理层 * * @author <achao1441470436@gmail.com> * @since 2021/6/11 0011 21:55 */public interface RedisManager { /** * 从缓存中获取否则从mysql中查询 * * @param key 缓存中的key * @param mysqlSupplier 查询mysql操作 * @param typeReference 返回的类型 * @param <T> 数据类型 * @return 数据 ...
idea中的书签
我以为人们在每一个时期都可以过有趣而且有用的生活。我们应该不虚度一生,应该能够说,“我已经做了我能做的事”,人们只能要求我们如此,而且只有这样我们才能有一点欢乐——居里夫人
CTRL+F11可以选择添加书签
也可以CTRL+SHIFT+上述按键添加书签
例如CTRL+SHIFT+4效果如下
SHIFT+F11可以查看添加的书签
点击/回车可以跳转到对应的书签
也可以按CTRL+书签名跳转
例如CTRL+4
能直接从别的类跳转过来
也可以直接按F11添加匿名书签
以上添加书签的操作,可以再按一下取消
我们可以使用鼠标点击书签去添加描述
编辑的描述能在书签列表看到
这里我们可以按CTRL+A全选
然后按DELET实现全部删除