- 博客(106)
- 收藏
- 关注

原创 前端面试题
对于 html 的标准属性来说,attribute 和 property 是同步的,是会自动更新的。attribute 是 dom 元素在文档中作为 html 标签拥有的属性。property 就是 dom 元素在 js 中作为对象拥有的属性。attribute 和 property 的区别是什么?但是对于自定义的属性来说,他们是不同步的。script 引入方式?
2022-11-17 11:29:18
549
原创 token无感刷新
在前端应用中,常常需要处理因token过期而导致的请求失败的情况。我们可以将这些失败的请求挂起,待token刷新成功后重试这些请求。
2025-02-22 09:45:00
297
原创 微信问题总结(onpageshow ,popstate事件)
此坑描述订单详情某按钮点击,通过window.location.href跳转到(外部)第三方链接后,回退后,在ios中生命周期和路由导航钩子都失效了,无法触发。在安卓中无视此坑, 回退没有问题。
2025-02-21 23:36:51
410
原创 JavaScript 语言基础之标签语句
类似地,当在嵌套的循环语句中使用 continue 语句时,只能跳过当前的循环,无法跳过外层循环。但是,如果在外层循环前加上一个标签,就可以在内层循环中使用 continue 语句跳过外层循环的某次迭代。但是,如果在函数前加上一个标签,就可以在函数内部使用 return 语句跳出函数,并返回一个指定的值。当在嵌套的循环语句中使用 break 语句时,只能跳出当前的循环,无法跳出外层循环。但是,如果在外层循环前加上一个标签,就可以在内层循环中使用 break 语句跳出外层循环。
2025-02-21 22:30:59
210
原创 零代码平台搭建规划要点
一个运营同学可通过图形化的用户界面拖拽&配置组件生产页面的系统,可跳过产品、开发、测试等流程实现页面的低成本、快速上线。综上只有公司业务够大「运营页面多,且需频繁调整,需低成本做AB 实验」,才适合搭建零代码平台,只有这样才能发挥零代码平台的价值。零代码平台(电商CMS系统为例)搭建实战 | 人人都是产品经理 (woshipm.com)
2025-02-12 11:31:17
864
原创 微前端框架micro-app中的数据通信机制
获取数据的主动性getData方法是主动获取数据,而方法是被动获取数据(通过监听数据变化)。使用场景getData方法适用于即时获取数据的场景,而方法适用于需要实时响应数据变化的场景。灵活性方法通过提供参数,使得在初次绑定监听器时能够主动触发一次监听函数,从而获取缓存中的数据,这在某些情况下非常有用。
2024-12-10 16:23:26
695
原创 在Dart中的操作符
使用这些操作符时,请注意它们的优先级顺序和结合性,以便正确计算表达式的结果。如果需要使用括号来提高代码的可读性或改变运算顺序,可以添加括号。(如果左侧操作数为null,则返回右侧操作数,否则返回左侧操作数)(如果条件为真,则返回值1,否则返回值2)(允许在同一个对象上面做一系列的操作)
2024-07-18 18:32:33
253
原创 nextjs之next/image的使用技巧
next/image是 Next.js 提供的一个用于优化图像加载和显示的组件。可以自动处理图像的尺寸、格式和加载优化(预加载),提升网页的性能和用户体验。
2024-07-18 11:32:45
949
原创 Flutter组件之间通信方式
4,5,6这三种通信方式都是全双工的,因此基于它们你可以实现Platform与Dart之间的各种通信能力。这些通信方式在开发Flutter插件或需要与原生平台深度集成的应用时非常有用。Flutter支持多种父子组件和兄弟组件之间的通信方式。
2024-07-17 15:44:31
1475
原创 Flutter的生命周期方法
Flutter的生命周期执行时机可以分为两个主要部分:Flutter本身的组件生命周期(widget生命周期)和平台相关的应用程序生命周期(APP生命周期)。
2024-07-05 15:42:55
897
原创 Flutter接收一个Widget类型可空参数报`A value of type ‘Widget?‘ can‘t be assigned to a variable of type ‘Widget‘`
但是,在Flutter的UI构建中,这通常不是一个好的做法,因为Widget树中的大部分Widget都不应该为null。在大多数情况下,你应该避免使用非null断言(除非你真的确定变量不会是null),并优先考虑为可能为null的变量提供默认值或处理null的情况。但请注意,这不会解决null安全问题,它只是一个语法糖,用于在类的构造函数之外初始化非final的实例变量。如果你的变量在初始化之后不会被重新赋值,并且你可以在初始化它之前确保它不会被使用,你可以使用。表示一个可能是null的Widget,而。
2024-07-05 09:49:47
632
原创 Node中模块查找机制
在Node.js中,目前支持模块和commonjs模块,在这个万物皆可为模块的世界里,模块的查找机制是一个相对复杂但有序的过程。这通常被称为“模块解析”或“模块查找”。
2024-06-13 14:13:18
1102
原创 webpack处理vue项目静态资源及public/static/assets目录的区别
Vue 静态资源可以通过两种方式进行处理:1、在 JavaScript 被导入或在 template/CSS 中通过被引用。这类引用。2、放置在public目录下或。这类资源将会,而。在项目中的webpack.config.js等项目配置文件中使用的require属于nodejs范畴,而进入index.js后,加载的组件中的require都属于webpack的解析范畴。
2024-06-13 10:29:49
813
原创 flutter组件封装技巧
这段代码是一个用于创建一个(GradeTag)组件的类。这个组件可以根据输入的年级和颜色创建一个具有不同颜色和百分比显示的标签。assertGradeTagbuildRowContainerText用途:这个组件可以用于展示不同级别的成绩标签,例如SSR(高级)、SR(中级)和S(初级)等。同时,可以通过传入不同的颜色参数来定制标签的颜色。
2024-05-15 16:30:55
1013
原创 这是我见过最全、最强的权限系统设计方案!
本文从易到难非常详细的介绍了权限模型的设计,在工作中需要根据实际情况来定义模型,千人以内的公司使用RBAC模型是完全够用的,没有必要吧权限模型设计的过于复杂。模型的选择要根据具体情况,比如公司体量、业务类型、人员数量等。总之最适合自己公司的模型就是最好的模型,权限模式和设计模式是一样的,都是为了更好的解决问题,不要为了使用模型而使用模型。来源:blog.youkuaiyun.com/u010482601/article/details/104989532。
2024-05-14 18:34:58
954
原创 管理非结构化数据
据IDC调查,目前企业结构化数据仅占到全部数据量的20%,其余80%都是以文件形式存在的非结构化和半结构化数据,这些非结构化数据每年增长率达60%。如何管理好这80%的数据,是现代化企业数据管理中关键的一环。对于非结构化数据的管理包括步骤包括数据盘点、数据清理、数据丰富、归类和整合数据,分析和应用等。
2024-05-08 17:52:17
1054
原创 StatelessWidget处理网络请求
在Flutter中,`StatelessWidget`本身不支持直接进行网络请求,因为它旨在表示没有内部状态且不需要主动发起数据更新的UI组件。借助外部工具(`FutureBuilder`或`provider`库)来处理网络请求并响应数据变化,实现了在不违反`StatelessWidget`原则的情况下展示异步获取的数据。
2024-05-08 09:47:11
239
原创 Flutter中组件Widget的粗解
Flutter 中是通过 Widget 嵌套 Widget 的方式来构建UI和进行事件处理的,所以记住,Flutter 中万物皆为Widget。widget 的功能是“就是说, Widget 其实并不是表示最终绘制在设备屏幕上的显示元素。
2024-04-23 15:27:15
851
原创 学会这些思维框架,提高综合决策能力
用实践来体验真实世界,但这个并不妨碍你对梨子的认知,同时和王阳明在“龙场悟道”所说的“心即理”,要观照自己的心里所想,并做到“知行合一”,在知中行,在行中知。《思考的框架》这本书介绍的9个思考框架,就可以锻炼思维,帮助我们更好地决策。在一阶思维下,我们能预见自己的行动造成的直接后果,二阶思维要求我们考虑结果背后的结果,把长远利益放在短期利益之上。世界是动态的,地图必然有缺 陷,它的价值在于帮助我们预测或解释事物,模型也是如此,现实是复杂的,模型是简化的。跟复杂的解释相比,简单的解释更有可能是正确的。
2024-04-23 10:45:50
1030
原创 husky配置实现代码提交前校验与规范提交信息
husky是一个Git Hook管理工具,主要用于实现提交前eslint校验和commit信息的规范校验。Husky 的原理是让我们在项目根目录中写一个配置文件,然后在安装 Husky的时候把配置文件和 Git Hook 关联起来,这样我们就能在团队中使用 Git Hook 了。首先,确保已经安装了husky和commitlint。在项目中启用husky钩子,事实上是在项目根目录生成配置文件的文件夹(.husky)。查看,可以看到配置中修改了指向为.husky。
2024-03-28 13:40:55
2891
2
原创 Flutter 绘制原理
综合以上两点,我们可以看到 PictureLayer 的“绘制产物”一开始是一些列“绘图指令”,当第一次绘制完成后,位图信息就会被缓存,绘制指令也就不会再被执行了,所以这时“绘制产物”就是位图了。为了便于理解,后续我们可以认为指的就是绘制好的位图。也应该是树状结构,Flutter 会根据一些“特定的规则”(后面解释)为组件树生成一棵 Layer 树,而容器类Layer就可以组成树状结构(父 Layer 可以包含任意多个子 Layer,子Layer又可以包含任意多个子Layer)。
2024-03-27 18:27:17
759
原创 flutter布局更新
理论上,某个组件的布局变化后,就可能会影响其他组件的布局,所以当有组件布局发生变化后,最笨的办法是对整棵组件树 relayout(重新布局)!但是对所有组件进行 relayout 的成本还是太大,所以我们需要探索一下降低 relayout 成本的方案。实际上,在一些特定场景下,组件发生变化后我们只需要对部分组件进行重新布局即可(而无需对整棵树 relayout )
2024-03-27 16:27:10
1221
原创 Flutter Widgets体系结构
在Flutter的Dart语言中,`this`关键字被用来引用当前对象的实例成员(属性或方法)。当你在类的方法中访问同一个类的另一个方法或变量时,可以使用`this`关键字,尤其是当参数名称与成员变量名相同,从而需要区分作用域时,也可以直接省略。在Flutter widget树构建方法(例如`build`方法)中,你可能需要访问当前widget的属性或调用它的方法。在不考虑整棵树的情况下,几乎不可能精确定义任何 widget 的大小和位置。引用当前对象的属性或方法的关键字widget和this的区别。
2024-03-14 17:13:04
964
1
原创 flutter环境搭建实践
Dart 是一种客户端和服务器端的编程语言,最早由 Google 提出。它被设计用于构建高性能、高度可伸缩和可靠的应用程序。Dart 可以编译成本地代码或者在虚拟机中直接运行。在移动应用开发中,Dart 主要用于开发 Flutter 应用。
2024-03-14 10:36:31
923
原创 Babel原理
根据配置好的 plugins/presets 把 Parser 生成的 AST 转变为新的 AST。将代码转换成抽象语法树 (AbstractSyntaxTree,简称 AST)词法分析:将字符串形式的代码分割为令牌(token)流,即语法单元成的数组。语法分析:将token流转换成 AST。把新的 AST 生成代码。
2024-03-12 16:22:38
284
原创 弱缓存变强缓存的原因
强缓存就是为了给客户端自给自足用的,在客户端控制。如果资源没过期,就取缓存,如果过期了,则请求服务器。如果资源有更改,返回200,返回最新的资源,如果资源没更改,返回304,浏览器读取本地缓存。协商缓存无论如果,都要向服务端发请求的,只不过,资源未更改时,返回的只是header信息,所以size很小;而资源有更改时,还要返回body数据,所以size会大。用户行为对缓存的影响F5 会跳过强缓存规则,直接走协商缓存Ctrl+F5 跳过所有缓存规则,和第一次请求一样,重新获取资源配置资源的缓存规则。
2024-03-12 10:27:00
870
原创 浏览器进程、线程、线程池解释及使用
线程池是一种用于管理线程的集合,以提高内存和CPU效率。它通过一次性创建一定数量的线程,并当有新的请求到来时,直接使用已创建的线程来处理请求,从而避免了频繁地创建和销毁线程的开销。线程池中的线程可以被多个请求共享,因此可以更有效地利用系统资源。
2024-03-06 15:32:02
1309
原创 js新增的操作元素类名的方法
在不同的环境中,全局对象可能有所不同,例如在浏览器中是 window,在 Node.js 中是 global。globalThis 的出现就是为了解决这个问题,它使得在任何环境中都可以使用统一的接口来访问全局对象。这可以用于操作 class 集合。属性自身是只读的,但是你可以使用。是一个只读属性,返回一个元素。
2024-02-01 18:48:34
349
原创 小程序跳转:云开发之h5跳小程序
经过测试,发现中转的h5页面也可以放在自己公司的静态服务器上面,但带来的问题是在手机端微信内通过链接打开h5页,wx-open-launch-weapp开放标签按钮不显示,没有办法去到小程序。后面想到改用a标签,此种方式可以实现跳转,但是在一些机器上面(特别是安卓),会直接跳转到微信并打开目标小程序。配置的wx-open-launch-weapp开放标签按钮,需要主动点击才会打开目标小程序,避免了无感知和某些政策审核问题。wx-open-launch-weapp开放标签按钮不显示,下面是一些参考文章。
2024-02-01 17:58:29
458
原创 外链跳转微信小程序的几种实现
第一种方法:通过公众号文章来实现,公众号文章页面,可以插入小程序 公众号 视频号的功能,发布一篇图文,发布后,用短链接生成一个短链就可以做短信发送了;第二种方法:通过第三方工具,比如 小月外链 虾果 可以搜索引擎搜索一下,有全部的解决方案,就是支持微信外部一键唤醒微信进入相应的内容;第三种方法:通过微信客服(需要有企业微信申请)的链接可以设置跳转微信小程序 以及第三方链接,功能很强,有空的朋友可以去了解一下。以上三种方法操作都很简单。
2024-01-22 18:56:16
3582
原创 通过浏览器判断是否安装APP
求在分享出来的h5页面中,有一个立即打开的按钮,如果本地安装了我们的app,那么点击就直接唤本地app,如果没有安装,则跳转到下载。
2024-01-15 18:04:53
2222
原创 JsonPath
JsonPath是一种用于处理JSON数据的查询语言,它允许你通过路径表达式在JSON文档中查找和访问节点。JsonPath还支持函数和过滤器,函数可以在JsonPath表达式执行后进行调用,其输入值为表达式的结果。过滤器是用于过滤数组的逻辑表达式,可以通过逻辑表达式&&或||组合多个过滤器表达式。JsonPath的路径表达式由节点名组成,节点之间以"."分割,且路径必须是从根节点开始的完全绝对路径,并提供类似正则表达式的功能,能够满足各种复杂的查询需求。
2024-01-12 16:19:57
686
原创 HTTP的Content-type 和 responseType
后端返回字节流,前端进行图片下载时遇到了问题,定位花了不少时间,本文再次记录梳理下。
2024-01-12 14:46:14
6344
原创 前端moa gif json显示动画
使用requestAnimationFrame()方法创建一个动画函数,将JSON文件的数据传递给该函数,使用Web动画API创建一个SVG动画,并将JSON数据渲染到SVG动画中。
2024-01-11 17:15:34
931
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人