使用位标记存储多个布尔状态 11-16 21:50 很多场景下,我们会使用 bool 值来描述实体状态,通常用实体的一个属性来表示。对于多个 bool 状态标记,我们可以使用位标记来替换它,仅使用一个属性来表示实体下所有的 bool 状态。这样做的好处是,一方面减少实体的属性,代码层面会更简洁;另一方面,单标记比多标记更节省空间,在数据存盘时能节约大量磁盘空间。
Nuxt服务端渲染:后端接口身份验证 2022-04-12 Nuxt服务端渲染解决了Vue单页应用SEO的痛点,但是在权限认证上也带来了一些麻烦。Nuxt项目中,用户切换路由时请求页面和在页面中触发ajax请求数据的的路径是不同的。本文介绍一下两种请求统一进行身份验证的方法。
实现关键词高亮:在HTML字符串中匹配“跨标签关键词” 2020-11-23 很久之前(好像刚好是一年前)写过一个Vue组件,可以匹配文本内容中的关键字然后高亮,类似浏览器搜索结果。实现原理是,将文本字符串中的关键字搜索出来,然后使用特殊的标签(本文示例使用font标签)包裹关键词替换匹配内容,最后得到一个HTML字符串,渲染该字符串并在font标签上使用CSS样式即可实现高亮的效果。当时的实现过于简单,没有支持接收HTML字符串作为内容进行关键词匹配。这两天有同学问到,就又思考了这个问题,发现并不是那么麻烦,写了几行代码解决了一下。
文本超过N行折叠内容并显示“...查看全部” 2020-11-16 多行文本超过指定行数折叠是一个常遇到的需求,网上也有人实现过类似的功能,不过还是想自己写写看,于是就写了一个Vue的组件,本文简单介绍一下实现思路。
ElementUI表格el-table表头固定自适应高度解决方案 2020-10-22 el-table的height属性可以方便地实现表格固定,但是这个值该设置为多少以适配屏幕大小呢?设置过小,则可能出现可视区域内有空白位置,但是表格内却出现滚动条;设置过大,则在一些小屏幕设备上浏览时,页面本身和表格内部都可能会出现滚动条。两种情况体验都是极差的,为了解决这个问题,我们需要动态地计算页面空白区域的高度,然后设置到height属性,即根据页面大小,动态计算height属性。
axios请求失败自动重发 2020-09-26 在做Vue、React项目的时候常会用axios请求库来与后端进行数据交互。我们通常采用一个用户凭证token来验证用户身份,服务器根据token进行判断当前用户是否有权限调用接口。经常遇到的一个问题是,调用接口时token可能已经过期,此时调用接口会失败,需要重新登录后再调用接口。通常我们可能处理为,用户走完登录流程后再重新手动触发一次请求。这样的实现本身没什么问题,但是给用户的操作体验上有被中断的感觉,本文尝试解决了一下这个问题。
JS双等号比较符作用细节 2020-08-23 都知道JS里”==“和”===“的区别,在于非同类型变量的比较中,”===“会直接返回false,而”==“则会先将两个比较值先转换为同一类型,再进行比较。然而,这里”先转换为同一类型“是什么样的规则呢?
为什么不推荐用for...in遍历数组 2020-08-19 两年前写的一个文章目录生成插件vue-outline,一直用着没出啥问题(本站的文章目录也是用该插件生成的)。但是最近一个网友在使用的时候却出现了异常报错,异常代码使用了一个for...in遍历数组导致出现了预料之外的情况。
leetcode 375. 猜数字大小 II 2020-05-11 我们正在玩一个猜数游戏,游戏规则如下: 我从 1 到 n 之间选择一个数字,你来猜我选了哪个数字。 每次你猜错了,我都会告诉你,我选的数字比你的大了或者小了。 然而,当你猜了数字 x 并且猜错了的时候,你需要支付金额为 x 的现金。直到你猜到我选的数字,你才算赢得了这个游戏。 给定 n ≥ 1,计算你至少需要拥有多少现金才能确保你能赢得这个游戏。
leetcode 5407. 切披萨的方案数(难度:困难) 2020-05-10 给你一个 rows x cols 大小的矩形披萨和一个整数 k ,矩形包含两种字符: 'A' (表示苹果)和 '.' (表示空白格子)。你需要切披萨 k-1 次,得到 k 块披萨并送给别人。 切披萨的每一刀,先要选择是向垂直还是水平方向切,再在矩形的边界上选一个切的位置,将披萨一分为二。如果垂直地切披萨,那么需要把左边的部分送给一个人,如果水平地切,那么需要把上面的部分送给一个人。在切完最后一刀后,需要把剩下来的一块送给最后一个人。 请你返回确保每一块披萨包含 至少 一个苹果的切披萨方案数。