- 博客(53)
- 收藏
- 关注
原创 CSS - CSS One-Line
用于定义元素的宽高比,简化了以往使用“填充黑客”的方法。: 用于设置元素的左右边距,简化了以往的 margin-left 和 margin-right 设置。: 定义浏览器 UI 元素(如表单控件和滚动条)的颜色方案,以适应深色或浅色主题。: 控制替换元素(如图像)的内容如何适应其容器,常用值包括。: 修改复选框和单选按钮等表单控件的颜色,提高主题管理能力。: 控制滚动区域的行为,防止滚动超出边界影响父页面。: 控制文本基线与下划线之间的距离,改善可读性。: 设置轮廓与元素之间的距离,提升焦点可见性。
2024-11-25 10:21:13
414
原创 vue3 响应式原理 双向绑定原理
Vue.js 的响应式原理和双向绑定原理是 Vue.js 框架的核心机制,它们共同实现了 Vue.js 的数据驱动视图的特点。
2024-02-21 09:44:37
548
原创 http缓存?强制缓存和协商缓存?
HTTP缓存是一种优化网络资源加载速度的技术,通过减少从服务器获取相同资源的次数来实现。HTTP缓存机制包括强制缓存和协商缓存(对比缓存)两种类型。
2024-02-21 09:37:52
846
原创 从输入URL到页面加载的全过程
这个响应包括响应行(如HTTP/1.1 200 OK)、响应头(如Content-Type、Content-Length等)和响应体(即实际返回给浏览器的数据,通常是HTML文档)。这个请求通常包括请求行(如GET或POST)、请求头(如User-Agent、Accept-Language等)和请求体(对于POST请求,包含提交的数据)。当所有资源(如HTML、CSS、JavaScript、图片等)都加载完成,并且DOM、CSSOM、渲染树都已经构建和渲染完毕,页面加载过程就基本完成了。
2024-02-20 16:58:13
1048
原创 h5 调用相机拍照上传时页面刷新
理解了问题的原因,对问题的一些表征也就有了合理的解释:低端安卓机的内存更小,因此发生问题的频率更高;对于这一问题,Android技术团队的态度是回避(将bug标记为obsolete),可能是因为此bug涉及了OS底层进程切换的机制,修复起来风险太高;而随着手机设备内存容量的增大,这一问题所发生的概率会越来越小。在经过一番搜索和调研后,发现这个问题的原因远比自己想象的要复杂:这是一个由Android操作系统底层设计缺陷所导致的问题,对于Web开发者来说,没有什么办法能真正解决这一bug。
2024-02-20 08:51:14
1310
4
原创 前端框架 - htmx
htmx是一个很好的工具,可以让在不需要写js代码的情况下,实现很多复杂的功能。但是,通过上述例子也可以发现,为了实现一些复杂的功能,需要在html中添加很多属性,这样会导致HTML代码变得很臃肿,不利于维护,所以,htmx的使用场景还是有一定的局限性的,需要根据实际情况来选择使用。
2024-01-26 17:30:18
1048
1
原创 随时切换 NPM 镜像
mac 安装时 npm 报错话可能是权限不足,命令前加上 sudo 即可。nrm use taobao 即可切换到镜像源。
2024-01-26 09:30:21
918
原创 vue3 自动引入 ref reactive...
A: 未配置自动导入相应的 eslint 规则, 通过 autoimport 中的配置生成对应 .eslintrc-auto-import.json 配置文件,并在 .eslintrc 中引入。A : TS 未识别到 vue api,没有相应的模块声明文件, 在 vite 中配置并生成 auto-imports.d.ts ,并在 tsconfig.json 中引入。Q: eslint 无法识别报错 error ‘reactive’ is not defined no-undef。
2024-01-24 08:55:20
1120
原创 使用vite build 后移动 index.html 到后端目录中
"build": "vite build && mv ../think/public/static/wxmp/index.html ../think/view/wxmp/home_index.html", //移动index.html 到指定位置。outDir: '../think/public/static/wxmp', //打包到的位置。base: '/static/wxmp', // 修改静态资源路径。minify: true, //是否压缩。
2024-01-23 16:55:52
1308
原创 async、await、Promise 的底层实现
JavaScript 中的是基于 Promise 的语法糖,它们使得异步代码的编写更加简洁和直观。在底层实现中,async函数会使用 "coroutine" 来处理异步操作,而await表达式则会调用 Promise 的then()方法来等待 Promise 的解析完成。JavaScript 中的 Promise 底层实现涉及到事件循环和异步函数的概念。Promise 的状态由引擎管理,并根据异步操作的结果进行更新。
2024-01-10 09:29:52
625
原创 vue3 中的 mvvm 设计与实现和 mvvm 的优缺点
由于数据双向绑定和虚拟DOM的存在,Vue 3在处理大量数据和渲染复杂视图时可能会面临性能问题。:尽管Vue 3的社区已经相当活跃,但在某些特定领域和应用场景下,可能不如其他框架(如React或Angular)的社区成熟和丰富。:MVVM模式是一种常见的设计模式,它遵循了MVC的架构,将视图和模型分离,使得代码更加清晰和易于维护。:Vue 3提供了丰富的API和插件生态系统,使得开发者可以根据需求定制和扩展应用程序的功能。:在 Vue 3 中,你可以使用组合 API 来组织和复用组件逻辑。
2024-01-10 09:18:13
1376
原创 Mac 安装软件时解除隔离,绕过签名
sudo codesign --force --deep --sign - + 空格 + APP。sudo xattr -r -d com.apple.quarantine + 空格 + APP。(将 APP 拖入到命令行后面)访达-应用程序-右击-打开。
2024-01-04 14:11:52
1615
原创 Vite 打包时修改静态资源的路径
在使用 Vite 打包项目时,如果想要修改静态资源的路径,可以在vite.config.js文件中配置base 选项。这个选项可以控制项目中静态资源的基路径。注意:如果应用是部署在非根路径上的服务器,需要确保服务器配置也能正确地处理这个基路径。配置后,Vite 在构建时会将所有静态资源的引用路径前添加/dist/ 前缀。
2023-12-21 10:11:15
4046
原创 prettier自动排列 Tailwind 的类名顺序
"prettier-plugin-tailwindcss" // 必须最后一个加载。配置 prettier.config.js。配置 .prettierrc (必须。
2023-12-15 09:33:45
1073
2
原创 MAC PHP版本安装问题
因为php7.4官方已经不再维护,所以Hombrew将该php版本移出了repository,所以安装不了。安装php 7.4版本不成功。
2023-12-05 18:16:53
1067
1
原创 解决Nginx访问php文件直接下载
这种情况通常是因为nginx没有将PHP文件交给PHP解释器处理,而是直接返回了文件内容,导致浏览器将其当作下载文件。在nginx服务器中配置这么一段代码,用来解析PHP。
2023-12-05 18:09:39
2090
原创 Nginx启动失败,80端口被占用,kill不掉进程
试了无数种方法,找进程,kill进程,网络监视器找进程,都没有成功。启动 nginx 就会报错,提示80端口被占用。没有 lsof 的话先安装lsof。找到哪个进程监听的 80 端口。
2023-12-05 13:37:05
1237
原创 深入了解 Node.js:了解其历史、线程和事件驱动架构
如果这两个队列中的任何一个中有任何回调,它们将在当前阶段完成后立即执行,而不是等待整个事件循环完成其四个阶段。例如,如果 promise 在过期计时器的回调运行时解析并返回 API 调用中的数据,则其回调将在计时器的回调完成后立即执行。由于事件循环,异步编程在 Node.js 中成为可能,这使得事件循环成为 Node.js 最重要的功能。但是,事件循环是 Node.js 运行时的核心机制。例如,新的 HTTP 请求、计时器过期或已完成的文件读取或写入文件操作等事件将发出事件,然后事件循环将拾取这些事件。
2023-12-04 10:31:53
1286
原创 关于微信小程序更新的问题 UpdateManager
开发者在管理后台发布新版本的小程序之后,微信客户端会有若干个时机去检查本地缓存的小程序有没有新版本,并进行小程序的代码包更新。用户长时间未使用小程序时,为保障小程序版本的实时性,会强制同步检查版本更新,更新到最新版本后再打开小程序。如果有更新,下次小程序启动时会同步进行更新,更新到最新版本后再打开小程序,尽可能保证用户能够尽快使用小程序的最新版本。开发者在后台发布新版本之后,无法立刻影响到所有现网用户,正常情况下,在全量发布 24 小时之后,新版本可以覆盖 99% 以上的用户。
2023-12-02 10:05:48
734
原创 识别项目中未使用的 npm 包
如果项目中安装了很多 npm 包,可能只是为了尝试使用其中一些。这将列出项目中所有未使用的 npm 包,然后从。文件中删除对应的包名称。
2023-12-02 09:41:43
693
原创 JS Coding Tips ✨
5. 根据指定深度递归地将所有子数组元素拼接到新的数组中。3. Better 判断。1. 解构赋值,合并对象。4. 动态属性名称。
2023-11-29 09:25:41
420
原创 PHPWebStudy搭建mac上的php开发环境
4. 点击左侧Hosts,进入站点管理模块,点击添加按钮,输入站点域名(本机测试用,任意域名,没有限制),选择站点目录(有的php框架会指定文件夹作为站点根目录,如thinkphp需要设置public作为站点目录)2. 点击左侧菜单栏的PHP模块,点击版本管理,进入PHP版本管理界面,安装好对应版本后进入切换版本界面。注意:域名建议local结尾,避免和其他线上正式域名冲突。1. 第一次使用提示输入电脑密码,后续不会再提示。3. 以同样的方式开启nginx。
2023-10-08 14:57:17
1103
原创 import 和 import()的区别(动态导入)
函数时,由于该模块已经被加载并解析过了,因此不会重新加载并解析,而是直接返回已经加载并解析好的模块实例。函数来导入同一个模块,只有第一次调用会执行真正的加载和解析操作,后续调用都会直接返回缓存的模块实例。可以动态地加载模块,即可以在运行时根据需要动态加载模块,而不需要在代码加载阶段就加载所有模块。是 ES6 中用于在动态环境中导入模块的函数,它是在运行时执行的,而不是在代码加载阶段执行。是异步的,因此在模块加载完成之前,模块中导出的变量或函数是无法使用的。导入的模块,可以直接访问其导出的变量和函数。
2023-08-04 11:32:36
1055
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人