- 博客(54)
- 资源 (9)
- 收藏
- 关注
原创 MySQL基础详解
MySQL是一种流行的开源关系型数据库管理系统,支持多种数据类型和SQL操作。本文介绍了MySQL的基本概念、SQL语句大小写规则、注释方式、数据类型以及常用操作。主要内容包括:1. 数据库和表的创建、删除、修改操作 2. 数据插入、查询、更新和删除语句 3. 索引、约束、事务等高级功能 4. 存储过程、触发器、游标等编程特性 5. SQL注入原理及防范措施 文章详细说明了MySQL的各种功能特性,包括视图、变量、正则表达式等,并提供了SQL注入的检测方法和防范建议。适合作为MySQL数据库的参考指南。
2025-12-13 15:30:00
727
原创 Blob、ArrayBuffer 与 Base64 详解
/ 创建 16 字节的 ArrayBuffer// 16// true与编程语言无关:是 JavaScript 对底层二进制数据的抽象,类似 C 语言的字节数组。
2025-11-08 14:15:00
761
原创 VUE3实现将包含图片的表格形式数据下载为Excel
兼容性与调试成本后端返回二进制流时,前端需正确处理响应格式(如response.arrayBuffer()),若格式错误(如 Content-Type 设置不当),会导致数据损坏且难以调试;缓存复用困难URL 形式可通过浏览器缓存复用图片(同一张图多次导出无需重复下载),而ArrayBuffer若随表格数据返回,每次导出都需重新传输完整二进制数据,无法利用缓存。URL 形式更适合网络良好且图片量大的场景,通过并行下载和缓存复用显著提升效率。图片数量少(如 1-5 张)、体积小(如每张 < 500KB);
2025-10-25 14:45:00
950
原创 Sass基础
嵌套属性的规则是这样的:把属性名从中划线-的地方断开,在根属性后边添加一个冒号:,紧跟一个{ }块,把子属性部分写在这个{ }块中。就像css选择器嵌套一样,sass会把你的子属性一一解开,把根属性和子属性部分通过中划线-连接起来,最后生成的效果与你手动一遍遍写的css样式一样。当注释出现在原生css不允许的地方,如在css属性或选择器中,sass将不知如何将其生成到对应css文件中的相应位置,于是这些注释被抹掉。在定义混合指令的时候,按照变量的格式,通过逗号分隔,将参数写进圆括号里。
2025-09-06 14:00:00
821
原创 pnpm基础详解
pnpm是一种高效、节省磁盘空间的包管理器。它通过内容可寻址存储和硬链接技术实现依赖共享,避免重复存储相同依赖,显著节省空间。相比npm/yarn的扁平化结构,pnpm采用符号链接创建严格的目录结构,解决"幽灵依赖"问题。安装过程分为依赖解析、目录计算和链接三步,速度更快。pnpm还支持通过npm全局安装或使用独立可执行文件。核心优势在于优化存储和提升安装效率,同时保证依赖管理的确定性。
2025-08-30 15:00:00
760
原创 npm基础
并在他们的项目中使用你的代码时获得良好的体验。Node 版本管理器允许你在系统上安装和切换多个版本的 Node.js 和 npm,以便你可以在多个版本的 npm 上测试你的应用,以确保它们适用于不同版本的用户。3. 如果你使用 git 管理你的包代码,请在包根目录中运行以下命令,将 git-remote-url 替换为你的包的 git 远程 URL。使用 npm 私有包,你可以使用 npm 注册表来托管仅对你和选定的协作者可见的代码,从而允许你在项目中管理和使用私有代码以及公共代码。
2025-08-30 14:30:00
777
原创 大文件上传(切片上传+断点续传)
使用切片上传,将大文件分割为多个小切片,降低了单次传输的压力,若传输失败,只需重新上传单个切片,不影响整体。由于分片上传,可多切片并行上传,上传速度更快。使用传统的文件上传方式,当一次性上传大文件时,服务器压力大,且可能因网络不稳定,超时等影响导致上传失败,需要重新上传,用户体验不佳。上传前检查服务器上已存在的切片,发起一个请求,获取哪些已经上传,继续上传未上传部分。断点续传可以在网络中断或者用户暂停后,文件从中断的地方继续上传。文件切片处理,读取本地文件并做切片处理,将文件分成多个小块。
2025-08-24 14:00:00
173
原创 pinia基础使用示例
Pinia是Vue的状态管理库,相比Vuex具有更简洁的API和更好的TypeScript支持。它通过Store管理全局状态,包含三个核心概念:state(状态数据)、getters(计算属性)和actions(方法)。Pinia使用defineStore定义Store,支持响应式访问状态,但需要通过storeToRefs保持解构后的响应性。状态修改可通过直接赋值、$patch方法或替换整个$state实现,还提供$reset重置和$subscribe状态监听功能。Getter支持参数化查询,Action支
2025-08-09 15:45:00
499
原创 el-select下拉框,搜索时,若是匹配后的数据有且只有一条,则当失去焦点时,默认选中该条数据
在输入文本进行搜索时,获取不到el-select内部匹配后的数据,故在失去焦点时,模拟搜索,获取筛选后的结果,当有且只有一条数据时,将那条数据赋给v-model绑定的值.当所需功能只能通过直接的 DOM 操作来实现时,才应该使用自定义指令。可使用方法2封装成共用函数,但用指令他人复用时比较便捷。
2025-03-21 18:03:30
682
原创 VUE中的组件加载方式
如果某些组件在首屏不需要,比如弹窗或者标签页里的内容,那么懒加载会更好,减少初始加载时间,实现时使用动态导入和异步组件,同时注意处理加载状态和错误处理。反之,如果组件在页面初始化时就必须显示,那么静态加载更合适,因为懒加载可能会导致组件显示延迟,甚至出现闪烁。在 showEdit.value = true 后,组件开始加载,但加载和挂载是异步的,因此 editRef.value 不会立即被赋值。常规的静态引入是在组件初始化时就加载所有依赖的组件,而懒加载则是等到组件需要被渲染的时候才加载。
2025-02-21 17:02:34
1012
原创 移动端,树形数据的一种展示形式
与后端配合,返回如hasChildren字段,判断此数据是否有子节点,若是有子节点,则点击卡片头部显示‘>’符号,表示可点击卡片头部获取子节点数据。上图最上方模拟面包屑,后端可返回卡片的全路径,将全路径处理为面包屑形式。获取卡片的id,传给后端,获取这个id的孩子节点数据,若数据以卡片形式展示为例。
2024-11-25 09:51:29
699
原创 element plus table树形数据,增、删、改子节点数据时,进行局部刷新,而不刷新整个页面
【代码】element plus table树形数据,增、删、改子节点数据时,进行局部刷新,而不刷新整个页面。
2024-10-28 16:52:31
640
1
原创 C# 引用相等性与值相等性
引用相等性指两个对象引用均引用同一基础对象。值相等性指两个对象包含相同的一个或多个值。对记录来说,值相等性是指如果记录类型的两个变量类型相匹配,且所有属性和字段值都相同,那么记录类型的两个变量是相等的。 对于其他引用类型(例如类),相等性默认指引用相等性,除非执行了值相等性。
2024-10-14 17:45:28
423
原创 uni-app 多环境配置
前后端分离模式下,不同的环境如开发环境(dev)、测试环境(test)、生产环境(prod)等,不同环境后端数据库、api地址等可能都不同。uni-app中只有development和production两个环境。建议使用方案2,将生产环境配置与开发环境配置区分在不同文件,更加清晰。以配置api地址为例。
2024-09-23 10:24:07
1718
1
原创 Switch开关根据条件判断是否阻止切换
change,此时Switch状态已经被切换,若此时应该是禁止切换,再切换为原来的状态,则会出现切换的过程,一闪而过,用户视觉体验不好。属性,若返回 false 或者返回 Promise 且被 reject,则停止切换。表格中的switch根据此行的某些数据,判断是否阻止切换。
2024-08-13 16:00:46
701
1
原创 组件间传值--祖孙
inject()注入一个由祖先组件或者整个应用(通过app.provide())提供的值。如果父组件链上多个组件对同一个key提供了值,那么离得更近的组件将会“覆盖”链上更远的组件所提供的值。$attrs是一个包含了组件所有穿透attribute的对象,其中穿透attribute是指由父组件传入,且没有被子组件声明为props或是组件自定义事件的attribute和事件处理函数。provide()接受两个参数,第一个参数是要注入的key,可以是一个字符串或者一个symbol,第二个参数是要注入的值。
2024-05-24 17:54:40
388
原创 模板引用 ref
只有在组件挂载之后才能访问模板引用。若想在模板中的表达式上访问input,在初次渲染时会是null(初次渲染前这个元素还不存在),可用watchEffect进行侦听如果一个子组件使用选项式API或者没有使用,被引用的组件实例和该子组件的this完全一致,这意味着父组件对子组件的每一个属性和方法都有完全的访问权。这使得在父组件和子组件之间创建紧密耦合的实现细节变得很容易,当然也因此,应该只在绝对需要时才使用组件引用。
2024-05-24 17:53:16
314
原创 在Vue父组件中修改子组件的样式
若两个不同的页面使用了同一个组件,且不同页面对使用组件的样式需求不同时,可在父组件中修改子组件的样式。1.若想在父组件1修改子组件的样式,而不影响其他组件,可结合scoped与deep深度选择器使用。2.在父组件添加类名。
2023-12-10 20:22:27
1440
原创 JavaScript中的遍历方法
在数组上应用 for..in 循环有时会产生出人意料的结果,因为这种枚举不仅会包含所有数值索引,还会包含所有可枚举属性。every(..) 和 some(..) 中特殊的返回值和普通 for 循环中的 break 语句类似,它们会提前终止遍历。使用 for..in 遍历对象是无法直接获取属性值的,因为它实际上遍历的是对象中的所有可枚举属性,你需要手动获取属性值。for..of 循环首先会向被访问对象请求一个迭代器对象,然后通过调用迭代器对象的 next() 方法来遍历所有返回值。
2023-11-26 20:36:02
133
原创 uni-app 小程序中路由的选择的注意点
如,在完成某一操作自动跳转到前一页时,需使用uni.navigateBack而非uni.navigateTo,否则在使用导航栏自带的返回按钮时,返回到的是上一关闭页面,而非预想的页面。5、uni.switchTab:跳转到tabBar页面,并关闭其他所有非tabBar页面。1、uni.navigateTo:保留当前页面,跳转到应用内的某个页面。3、uni.redirectTo:关闭当前页面,跳转到应用内的某个页面。4、uni.reLaunch:关闭所有页面,打开到应用内的某个页面。
2023-11-26 20:16:30
200
原创 JavaScript中的this详解
this 是在运行时进行绑定的,并不是在编写时绑定。this 的绑定和函数声明的位置没有任何关系,只取决于函数的调用方式。当一个函数被调用时,会创建一个活动记录(有时候也称为执行上下文)。这个记录会包含函数在哪里被调用(调用栈)、函数的调用方法、传入的参数等信息。this 就是记录的其中一个属性,会在函数执行的过程中用到。
2023-07-17 14:48:56
363
1
原创 call()、apply()与 bind()解析
若想在某个对象上强制调用函数,可以使用函数的call(..)和app(..)方法( JavaScript 提供的绝大多数函数以及你自己创建的所有函数都可以使用 call(..) 和 apply(..) 方法。,可以是null,undefined,this,但是不能为空,设置为null,undefined,this表明函数此时处于全局作用域。从 this 绑定的角度来说,call(..) 和 apply(..) 是一样的。call()、apply()call()、apply()和bind()三者都可以。
2023-07-06 16:51:57
179
原创 作用域的理解
作用域是用来存储变量,并且之后可以方便地找到这些变量的一套设计良好的规则当一个块或函数嵌套在另一个块或函数中时,就发生了作用域的嵌套。
2023-05-31 16:51:43
150
原创 setTimeout()与setInterval()
同:setTimeout和setInterval函数,都返回一个表示计数器编号的整数值,将该整数传入clearTimeout和clearInterval函数,就可以取消对应的定时器。setTimeout()是属于window的方法,该方法用于在指定的每秒数后调用函数或计算表达式。setInterval是一个实现定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算。被调用或窗口被关闭可以使用setInterval()方法。setInterval方法会不停地调用函数,直到。被调用或窗口被关闭。
2023-03-06 15:36:35
210
原创 Vue中mixin混入
可以把多个组件共用的配置提取成一个混入对象var myMixin={data(){....},methods:{...}}1.全局混入:Vue.mixin(xxx) //一但使用全局混入,它将影响每一个之后创建的Vue实例。2.局部混入:mixins:['xxx']当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行“合并”,并在发生冲突时以组件数据优先;同名钩子函数将合并为一个数组,都将调用,并且混入对象的钩子在组件自身钩子之前调用。 值为对象的选项,例如 methods、components 和
2023-02-23 17:44:08
226
原创 Vue中 ref 与 $refs
ref 被用来给元素或子组件注册引用信息(id替代者)。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例.注:$refs 只会在组件渲染完成之后生效,并且它们不是响应式的。这仅作为一个用于直接操作子组件的“逃生舱”——你应该避免在模板或计算属性中访问 $refs。
2023-02-14 18:32:41
141
原创 插槽(后备内容、具名插槽、作用域插槽)
插槽可以向一个组件传递内容,让父组件可以向子组件指定的位置插入html结构,也是一种组件间的通信方式,适用于父组件-->子组件为一个插槽设置具体的后备(也就是默认的)内容,将其放在标签内,它只会在没有提供内容时被渲染,但如果提供内容,则这个提供的内容将会被渲染取代后备内容需要多个插槽时,有个name的attribute,可以用来额外定义额外的插槽,一个不带name的出口会带有隐含的名字default。
2023-02-13 18:15:46
240
原创 v-if与v-show的区别
v-if控制元素显示或隐藏是把dom元素整个的渲染或者删除,如果删除,也是就页面中不存在这个dom元素,以达到隐藏的效果。并且v-if是惰性的,如果初始渲染条件为假时,那就什么也不做,直到条件第一次变为真时,需要渲染时才会开始渲染条件快。v-if在每次切换的时候都会重新创建或者销毁元素,有比较高的切换性能消耗。如果很少用到切换,或者元素可能永远都不会显示出来,使用v-if。 v-show则无论初始条件是什么,元素都会进行渲染,就是dom元素始终是存在的,v-show只是通过控制CSS中的display
2023-02-08 15:35:40
138
原创 var、let、const的区别
var 是函数作用域,let和const声明会形成快级作用域(即let声明的变量只在代码块{}内有效,在{}之外不能访问)const一旦声明必须赋值,不能用null占位,声明后不能在修改,如果声明的是复合类型数据,可以修改属性。var 声明的变量会挂载脂啊window上,而let和const声明的变量不会。const保证的不是变量的值不得改动,而是变量指向的那个内存地址所不得改动。var声明存在变量提升,let和const不存在变量提升。let和var用来声明变量,const用来声明常量。
2023-02-07 18:30:32
139
原创 Vue中计算属性( computed)VS方法(methods)VS侦听属性(watch)
computed能完成功能,watch都能完成,但是watch能完成的功能,computed不一定能完成,如watch可以进行异步操作。所有不被Vue所管理的函数如定时器的回调函数、ajax的回调函数,最好写成箭头函数,这样this的指向才是vm或组件实例对象)watch 适合监听单个数据。watch监听的是data中定义的变量,当该变量变化时,会触发watch即当被监视的属性变化时,回调函数自动调用,进行相关操作。若模板内的表达式放入过多的逻辑会然模板过重且难以维护,故对于复杂的逻辑,都应采用计算属性。
2023-02-06 14:30:21
218
原创 CSS 选择器详解
比较优先级时,需要将所有的选择器元素的优先级进行相加计算,最后优先级越高,越优先显示(分组选择器是单独计算的),选择器的累加不会超过其最大的数量级,如类选择器再高也不会超过id选择器。当我们通过不同的选择器,选中相同的元素,并且为相同的样式设置不同样式,当样式发生冲突时应用哪个样式由选择器的权重(优先级)决定。伪类(不存在的类,特殊的类)用来描述一个元素的特殊状态,如被点击的元素、鼠标移入的元素、第一个子元素。语法:选择器1,选择器2,选择器3,选择器n{}[属性名*=]选择属性值中含有某值的元素的元素。
2023-02-02 15:16:16
291
原创 JSON与JSONP
JSON( JavaScript Object Notation)JavaScript对象标记法, 是一种轻量级的数据交换格式,是一种存储和交换数据的语法。当数据在浏览器和服务器之间进行交换的时候,这些数据只能是文本。而JSON属于文本,我们可以把任何的JavaScript对象转化为JSON,然后将JSON发送至服务器,同时也可以将从服务器接收到的JSON转换为JavaScript对象。JSON语法衍生于JavaScript对象标记法语法:1.数据在名称/值对中2.数据由逗号分隔3.花括号容纳对象。
2023-01-09 16:50:23
737
原创 jQuery ajax
jQuery提供多个与AJAX有关的方法,通过这些方法可以使用HTTP Get和HTTP Post从远程服务器上请求文本、HTML、XML、或JSON, 同时能够把这些外部数据直接载入网页的被选元素中。statusTxt-包含调用的状态 ("success"、"notmodified"、"error"、"timeout"、"parsererror")jQuery load()方法是简单但强大的AJAX方法,从服务器加载数据,并把返回的数据放入被选元素中。布尔值,规定通过请求发送的数据是否转换为查询字符串。
2023-01-06 16:15:47
96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅