自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

原创 前端面试题

对于 html 的标准属性来说,attribute 和 property 是同步的,是会自动更新的。attribute 是 dom 元素在文档中作为 html 标签拥有的属性。property 就是 dom 元素在 js 中作为对象拥有的属性。attribute 和 property 的区别是什么?但是对于自定义的属性来说,他们是不同步的。script 引入方式?

2022-11-17 11:29:18 487

原创 在Dart中的操作符

使用这些操作符时,请注意它们的优先级顺序和结合性,以便正确计算表达式的结果。如果需要使用括号来提高代码的可读性或改变运算顺序,可以添加括号。(如果左侧操作数为null,则返回右侧操作数,否则返回左侧操作数)(如果条件为真,则返回值1,否则返回值2)(允许在同一个对象上面做一系列的操作)

2024-07-18 18:32:33 156

原创 nextjs之next/image的使用技巧

next/image是 Next.js 提供的一个用于优化图像加载和显示的组件。可以自动处理图像的尺寸、格式和加载优化(预加载),提升网页的性能和用户体验。

2024-07-18 11:32:45 433

原创 Flutter组件之间通信方式

4,5,6这三种通信方式都是全双工的,因此基于它们你可以实现Platform与Dart之间的各种通信能力。这些通信方式在开发Flutter插件或需要与原生平台深度集成的应用时非常有用。Flutter支持多种父子组件和兄弟组件之间的通信方式。

2024-07-17 15:44:31 900

原创 Flutter中的异步操作

这些异步操作方式在Flutter开发中非常常见,特别是在处理网络请求、文件读写、定时器、动画等可能耗时的操作时。

2024-07-17 10:01:48 435

原创 Flutter的生命周期方法

Flutter的生命周期执行时机可以分为两个主要部分:Flutter本身的组件生命周期(widget生命周期)和平台相关的应用程序生命周期(APP生命周期)。

2024-07-05 15:42:55 766

原创 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 523

原创 Node中模块查找机制

在Node.js中,目前支持模块和commonjs模块,在这个万物皆可为模块的世界里,模块的查找机制是一个相对复杂但有序的过程。这通常被称为“模块解析”或“模块查找”。

2024-06-13 14:13:18 935

原创 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 574

原创 flutter组件封装技巧

这段代码是一个用于创建一个(GradeTag)组件的类。这个组件可以根据输入的年级和颜色创建一个具有不同颜色和百分比显示的标签。assertGradeTagbuildRowContainerText用途:这个组件可以用于展示不同级别的成绩标签,例如SSR(高级)、SR(中级)和S(初级)等。同时,可以通过传入不同的颜色参数来定制标签的颜色。

2024-05-15 16:30:55 846

原创 这是我见过最全、最强的权限系统设计方案!

本文从易到难非常详细的介绍了权限模型的设计,在工作中需要根据实际情况来定义模型,千人以内的公司使用RBAC模型是完全够用的,没有必要吧权限模型设计的过于复杂。模型的选择要根据具体情况,比如公司体量、业务类型、人员数量等。总之最适合自己公司的模型就是最好的模型,权限模式和设计模式是一样的,都是为了更好的解决问题,不要为了使用模型而使用模型。来源:blog.csdn.net/u010482601/article/details/104989532。

2024-05-14 18:34:58 803

原创 Flutter学习大纲

当你开始学习 Flutter 时,以下是一些基本的学习笔记和建议,帮助你更好地掌握这个强大的跨平台应用开发框架。

2024-05-14 11:56:49 538

原创 管理非结构化数据

据IDC调查,目前企业结构化数据仅占到全部数据量的20%,其余80%都是以文件形式存在的非结构化和半结构化数据,这些非结构化数据每年增长率达60%。如何管理好这80%的数据,是现代化企业数据管理中关键的一环。对于非结构化数据的管理包括步骤包括数据盘点、数据清理、数据丰富、归类和整合数据,分析和应用等。

2024-05-08 17:52:17 579

原创 StatelessWidget处理网络请求

在Flutter中,`StatelessWidget`本身不支持直接进行网络请求,因为它旨在表示没有内部状态且不需要主动发起数据更新的UI组件。借助外部工具(`FutureBuilder`或`provider`库)来处理网络请求并响应数据变化,实现了在不违反`StatelessWidget`原则的情况下展示异步获取的数据。

2024-05-08 09:47:11 173

原创 Flutter中组件Widget的粗解

Flutter 中是通过 Widget 嵌套 Widget 的方式来构建UI和进行事件处理的,所以记住,Flutter 中万物皆为Widget。widget 的功能是“就是说, Widget 其实并不是表示最终绘制在设备屏幕上的显示元素。

2024-04-23 15:27:15 761

原创 学会这些思维框架,提高综合决策能力

用实践来体验真实世界,但这个并不妨碍你对梨子的认知,同时和王阳明在“龙场悟道”所说的“心即理”,要观照自己的心里所想,并做到“知行合一”,在知中行,在行中知。《思考的框架》这本书介绍的9个思考框架,就可以锻炼思维,帮助我们更好地决策。在一阶思维下,我们能预见自己的行动造成的直接后果,二阶思维要求我们考虑结果背后的结果,把长远利益放在短期利益之上。世界是动态的,地图必然有缺 陷,它的价值在于帮助我们预测或解释事物,模型也是如此,现实是复杂的,模型是简化的。跟复杂的解释相比,简单的解释更有可能是正确的。

2024-04-23 10:45:50 816

原创 JavaScript代理模式之四大代理

JavaScript设计模式中有一种模式为代理模式。

2024-03-28 17:58:27 533

原创 husky配置实现代码提交前校验与规范提交信息

husky是一个Git Hook管理工具,主要用于实现提交前eslint校验和commit信息的规范校验。Husky 的原理是让我们在项目根目录中写一个配置文件,然后在安装 Husky的时候把配置文件和 Git Hook 关联起来,这样我们就能在团队中使用 Git Hook 了。首先,确保已经安装了husky和commitlint。在项目中启用husky钩子,事实上是在项目根目录生成配置文件的文件夹(.husky)。查看,可以看到配置中修改了指向为.husky。

2024-03-28 13:40:55 2071

原创 Flutter 绘制原理

综合以上两点,我们可以看到 PictureLayer 的“绘制产物”一开始是一些列“绘图指令”,当第一次绘制完成后,位图信息就会被缓存,绘制指令也就不会再被执行了,所以这时“绘制产物”就是位图了。为了便于理解,后续我们可以认为指的就是绘制好的位图。也应该是树状结构,Flutter 会根据一些“特定的规则”(后面解释)为组件树生成一棵 Layer 树,而容器类Layer就可以组成树状结构(父 Layer 可以包含任意多个子 Layer,子Layer又可以包含任意多个子Layer)。

2024-03-27 18:27:17 672

原创 flutter布局更新

理论上,某个组件的布局变化后,就可能会影响其他组件的布局,所以当有组件布局发生变化后,最笨的办法是对整棵组件树 relayout(重新布局)!但是对所有组件进行 relayout 的成本还是太大,所以我们需要探索一下降低 relayout 成本的方案。实际上,在一些特定场景下,组件发生变化后我们只需要对部分组件进行重新布局即可(而无需对整棵树 relayout )

2024-03-27 16:27:10 1142

原创 Flutter Widgets体系结构

在Flutter的Dart语言中,`this`关键字被用来引用当前对象的实例成员(属性或方法)。当你在类的方法中访问同一个类的另一个方法或变量时,可以使用`this`关键字,尤其是当参数名称与成员变量名相同,从而需要区分作用域时,也可以直接省略。在Flutter widget树构建方法(例如`build`方法)中,你可能需要访问当前widget的属性或调用它的方法。在不考虑整棵树的情况下,几乎不可能精确定义任何 widget 的大小和位置。引用当前对象的属性或方法的关键字widget和this的区别。

2024-03-14 17:13:04 893

原创 flutter环境搭建实践

Dart 是一种客户端和服务器端的编程语言,最早由 Google 提出。它被设计用于构建高性能、高度可伸缩和可靠的应用程序。Dart 可以编译成本地代码或者在虚拟机中直接运行。在移动应用开发中,Dart 主要用于开发 Flutter 应用。

2024-03-14 10:36:31 859

原创 Babel原理

根据配置好的 plugins/presets 把 Parser 生成的 AST 转变为新的 AST。将代码转换成抽象语法树 (AbstractSyntaxTree,简称 AST)词法分析:将字符串形式的代码分割为令牌(token)流,即语法单元成的数组。语法分析:将token流转换成 AST。把新的 AST 生成代码。

2024-03-12 16:22:38 239

原创 弱缓存变强缓存的原因

强缓存就是为了给客户端自给自足用的,在客户端控制。如果资源没过期,就取缓存,如果过期了,则请求服务器。如果资源有更改,返回200,返回最新的资源,如果资源没更改,返回304,浏览器读取本地缓存。协商缓存无论如果,都要向服务端发请求的,只不过,资源未更改时,返回的只是header信息,所以size很小;而资源有更改时,还要返回body数据,所以size会大。用户行为对缓存的影响F5 会跳过强缓存规则,直接走协商缓存Ctrl+F5 跳过所有缓存规则,和第一次请求一样,重新获取资源配置资源的缓存规则。

2024-03-12 10:27:00 836

原创 浏览器进程、线程、线程池解释及使用

线程池是一种用于管理线程的集合,以提高内存和CPU效率。它通过一次性创建一定数量的线程,并当有新的请求到来时,直接使用已创建的线程来处理请求,从而避免了频繁地创建和销毁线程的开销。线程池中的线程可以被多个请求共享,因此可以更有效地利用系统资源。

2024-03-06 15:32:02 1147

原创 数据存储格式

数据存储格式是指数据在存储介质中表示和组织的方式,以便于读取、写入和管理。

2024-03-06 09:43:21 504

原创 js新增的操作元素类名的方法

在不同的环境中,全局对象可能有所不同,例如在浏览器中是 window,在 Node.js 中是 global。globalThis 的出现就是为了解决这个问题,它使得在任何环境中都可以使用统一的接口来访问全局对象。这可以用于操作 class 集合。属性自身是只读的,但是你可以使用。是一个只读属性,返回一个元素。

2024-02-01 18:48:34 286

原创 小程序跳转:云开发之h5跳小程序

经过测试,发现中转的h5页面也可以放在自己公司的静态服务器上面,但带来的问题是在手机端微信内通过链接打开h5页,wx-open-launch-weapp开放标签按钮不显示,没有办法去到小程序。后面想到改用a标签,此种方式可以实现跳转,但是在一些机器上面(特别是安卓),会直接跳转到微信并打开目标小程序。配置的wx-open-launch-weapp开放标签按钮,需要主动点击才会打开目标小程序,避免了无感知和某些政策审核问题。wx-open-launch-weapp开放标签按钮不显示,下面是一些参考文章。

2024-02-01 17:58:29 397

原创 外链跳转微信小程序的几种实现

第一种方法:通过公众号文章来实现,公众号文章页面,可以插入小程序 公众号 视频号的功能,发布一篇图文,发布后,用短链接生成一个短链就可以做短信发送了;第二种方法:通过第三方工具,比如 小月外链 虾果 可以搜索引擎搜索一下,有全部的解决方案,就是支持微信外部一键唤醒微信进入相应的内容;第三种方法:通过微信客服(需要有企业微信申请)的链接可以设置跳转微信小程序 以及第三方链接,功能很强,有空的朋友可以去了解一下。以上三种方法操作都很简单。

2024-01-22 18:56:16 1205

原创 玩转正则表达式

正则学了忘忘了学。。。秃头,特此记录。

2024-01-22 11:18:56 647

原创 通过浏览器判断是否安装APP

求在分享出来的h5页面中,有一个立即打开的按钮,如果本地安装了我们的app,那么点击就直接唤本地app,如果没有安装,则跳转到下载。

2024-01-15 18:04:53 1582

原创 tap“点透”

click换成了tap事件,tap会出现点透现象。

2024-01-15 10:16:20 341

原创 JsonPath

JsonPath是一种用于处理JSON数据的查询语言,它允许你通过路径表达式在JSON文档中查找和访问节点。JsonPath还支持函数和过滤器,函数可以在JsonPath表达式执行后进行调用,其输入值为表达式的结果。过滤器是用于过滤数组的逻辑表达式,可以通过逻辑表达式&&或||组合多个过滤器表达式。JsonPath的路径表达式由节点名组成,节点之间以"."分割,且路径必须是从根节点开始的完全绝对路径,并提供类似正则表达式的功能,能够满足各种复杂的查询需求。

2024-01-12 16:19:57 614

原创 HTTP的Content-type 和 responseType

后端返回字节流,前端进行图片下载时遇到了问题,定位花了不少时间,本文再次记录梳理下。

2024-01-12 14:46:14 3755

原创 前端moa gif json显示动画

使用requestAnimationFrame()方法创建一个动画函数,将JSON文件的数据传递给该函数,使用Web动画API创建一个SVG动画,并将JSON数据渲染到SVG动画中。

2024-01-11 17:15:34 787

原创 后端返回文件流乱码,responseType:‘blob‘无效的问题

项目中使用的mock.js模拟数据,http请求库使用的是axios,业务场景是请求后台接口,返回二进制数据,展示为图片。此时使用的是正式数据,仅仅是引入了mock并没有使用,结果前端展示不出来。开始漫长的网上找跳坑大法之路,发现了一篇文章,mock模块会修改原生ajax,使得responseType的值变成‘’空字符串。后来考虑axios设置content-type:blob和arraybuffer不同的问题,发现也不是。首先想到的是后台返回的格式本身是错误的,通过在后台打开发现没问题。

2024-01-11 16:14:48 929

原创 浮点数计算

为什么 0.1 + 0.2!== 0.3, 而 0.05 + 0.25 === 0.3js在计算浮点数时可能不够准确,会产生舍入误差的问题,这是使用基于二进制数值的浮点计算的通病,并非ECMAScript一家,其他使用相同数值格式的语言也存在这个问题。Number。使用 64 位固定长度来表示,也就是标准的。这样的存储结构优点是可以归一化处理整数和小数,节省存储空间。这64第1位: 是符号的标志位(S), 0代表正数,1代表负数第1-11位。

2024-01-09 15:19:59 501

原创 微信小程序web分析

为了便于定位生产环境的小程序漏洞和问题,我们可以在微信公众平台‘We分析’开启实时日志。

2024-01-09 15:13:36 351

原创 css中的变量和辅助函数

两个破折号加变量名称(可以在当前的选择器内定义)var(--*)

2024-01-06 16:00:37 1195

原创 git常用命令及概念对比

git config --list 查看git的配置git status 查看暂存区和工作区的变化内容(查看工作区和暂存区有哪些修改)git log 查看当前分支的commit 记录git log -p commitID详细查看commitID的具体内容git log -L :funcName:fileName 查看fileName文件中funcName函数的修改历史。

2024-01-06 12:49:04 1105

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除