自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 html渲染优先级

当遇到具有浮动属性的元素时,浏览器会将其从正常的文档流中脱离出来,并按照设定的浮动方向移动。需要注意的是,在具体的场景中,元素的渲染优先级可能会受到其他因素的影响,如CSS的选择器、样式表的顺序等。一般来说,块级元素的渲染优先级高于行内元素,而行内元素的渲染优先级又高于浮动元素和定位元素。在CSS中,元素的渲染优先级是由元素的类型和CSS的特定规则决定的。定位流的元素会脱离文档流,根据设定的位置放置,可能会覆盖文档流中的其他元素。浮动流的元素会脱离文档流,根据设定的浮动方向移动,后面的文档流会重新排列。

2024-01-21 08:13:12 674

原创 免费chartGPT网站汇总--

https://s.suolj.com - (支持文心、科大讯飞、智谱等国内大语言模型,Midjourney绘画、语音对讲、聊天插件)国内可以直连,响应速度很快 很稳定。https://www.ai.iisgpt.com - 国内可以直连,响应速度很快。https://chat.irss.eu.org - 国内可以直连,响应速度很快。https://www.ai-worker.cn - 国内可以直连,响应速度较好。https://chat.pypig.com - 国内可以直连,响应速度较好。

2024-01-21 08:07:04 745

原创 element-plus日期选择器英文改成中文

将上面这段代码加入main.ts或者main.js中就可以实现了。

2024-01-20 09:24:19 1175

原创 vue报错 ‘超出最大堆栈大小‘

如果没有正确的退出条件,就会导致无限循环,最终达到浏览器设置的最大堆栈大小。优化函数调用堆栈:如果你的代码中存在过深的函数调用堆栈,可以考虑优化它们。例如,通过将递归调用改为迭代调用,或者使用尾递归优化等方法来减少函数调用的层数。减少数据量:如果你的应用程序在处理大量数据时导致堆栈溢出,可以考虑减少数据量或者使用分页加载等方式进行数据处理,以避免一次性加载过多数据导致堆栈溢出。当Vue应用程序报错"超出最大堆栈大小"时,通常是由于递归调用导致的无限循环或过深的函数调用堆栈。

2024-01-20 08:15:38 559

原创 npm install 太慢?解决方法

在使用npm进行包管理时,有时会遇到安装速度缓慢的问题。这可能是由于网络原因或npm官方镜像服务器的繁忙导致的。如果您在公司或学校的网络环境中,可能会受到网络代理的限制,导致npm安装缓慢。通过设置代理来解决问题。淘宝镜像是一个提供npm包镜像的国内源,其速度较快且稳定。安装完成后,用cnpm替代npm命令即可,例如:cnpm install。替换proxy.example.com:8080为您实际的代理地址和端口。切换后,再次运行npm install,您将能够享受到更快的下载速度。

2024-01-19 22:03:09 2085

原创 vue3 pure-admin框架的一个问题

标签包裹导致的,不知道其他是不是这样,也许只是pure-admin。这个bug是打开一个没有内容的页面再返回之前有内容的页面之后,有内容的页面的内容都消失不见。解决:在templete下面用

2024-01-18 08:53:24 425

原创 vue3使用element-plus 树组件(el-tree)数据回显

非常好用,拿过来修改一下check事件,ref获取就直接可以使用了。

2024-01-17 09:14:10 1195

原创 什么是cookie?cookie的优缺点

cookie是一种存储于访问者计算机中的变量,由浏览器负责保存在电脑本地,cookie是浏览器提供的一种机制,可以有java script(JS)进行控制(设置、读取、删除)1。经许可(或不在Google的情况下),第三方可以访问这些cookie存储的信息。容易造成安全风险:cookie是以明文形式存储,可能会造成安全风险,因为任何人都可以打开并篡改cookie。方便用户登录:可以将登录信息存储在cookie中,省去每次登录都需要输入用户名和密码的麻烦。

2024-01-13 18:47:18 409

原创 vue3基础: 组件注册

为了方便,Vue 支持将模板中使用 kebab-case 的标签解析为使用 PascalCase 注册的组件。全局注册,但并没有被使用的组件无法在生产打包时被自动移除 (也叫“tree-shaking”)。如果你全局注册了一个组件,即使它并没有被实际使用,它仍然会出现在打包后的 JS 文件中。在父组件中使用子组件时,不太容易定位子组件的实现。局部注册的组件需要在使用它的父组件中显式导入,并且只能在该父组件中使用。一个 Vue 组件在使用前需要先被“注册”,这样 Vue 才能在渲染模板时找到其对应的实现。

2024-01-13 18:45:19 571

原创 vuex和pinia区别

如果你对较新的技术和更好的性能有要求,并且使用 TypeScript 进行开发,那么 Pinia 可能是一个不错的选择。- Vuex 是 Vue.js 官方提供的状态管理库,采用集中式的架构,所有的状态都存储在一个单一的全局状态树中。- Pinia 是一个由 Vue Store 创建的状态管理库,采用分布式的架构,每个模块都有自己的状态树。- Vuex 是 Vue.js 生态系统的一部分,得到了广泛的应用和支持,有大量的插件和工具可供使用。

2024-01-13 18:42:40 869

原创 TypeScript中的“as”语法是什么?

类型断言可以让开发者告诉编译器某个值的确切类型,即开发者可以手动指定值的类型,从而绕过 TypeScript 的类型检查。在上面的例子中,`(someValue as string)` 就是类型断言,它告诉 TypeScript 编译器 `someValue` 是一个字符串类型。这样就可以安全地访问字符串的 `length` 属性了。总之,"as" 语法用于类型断言,通过它可以在需要时手动指定值的类型,但应当谨慎使用,避免绕过 TypeScript 的类型检查导致潜在的类型错误。

2024-01-12 10:24:25 516

原创 如何将element-ui中的表格和分页器连接起来

先在页面将表格跟分页功能引入。这是分页里面需要加的。

2024-01-11 17:41:16 413

原创 vuex的5种状态

5、Module(模块):将 VueX store 分割为多个模块化的一部分,每个模块都有自己的 state,mutation、action、getter。4、Action(动作):异步修改状态的操作,Action 可以包含任意异步操作,最后由 Mutation 去更改 state。简单来说,State 存储数据,Mutation 更改数据,Getter 计算数据,Action 异步修改数据,Module 将 State、Mutation、Action、Getter 分割为模块,分模块开发更易于维护。

2024-01-11 08:14:43 600

原创 vue----axios的七大特性

4、拦截请求和响应;(修改请求数据,只能用在'PUT','POST'和'PATCH'这几个请求方法)3、基于 promise 的 HTTP 库,支持promise所有的API。1、在浏览器中发送 XMLHttpRequests 请求;5、转换请求和响应数据,响应回来的内容自动转换;2、在 node.js 中发送 http请求;7、客户端支持保护安全免受 XSRF 攻击;6、自动转换 JSON 数据;

2024-01-09 13:21:48 427

原创 Vue 3中toRaw和markRaw的使用

toRaw是Vue 3中的一个全局函数,它接受一个reactive或ref对象,并返回该对象的原始不代理版本。但是请注意,尽管proxy是响应性的,但original的修改不会触发代理的更新。toRaw和markRaw是Vue 3中引入的新API,用于更精细地控制对象的代理和响应性。根据您的具体需求,您可以选择是绕过代理对象,提高性能,还是禁用响应性,以便更好地管理您的应用程序状态。当您需要将Vue应用程序与不支持Vue的第三方库或原生浏览器API集成时,toRaw和markRaw非常有用。

2024-01-07 11:09:23 441

原创 变量和对象的解构赋值

在上述代码中,我们创建了一个新的 firstName 和 lastName 变量,并将它们分别初始化为 person 对象的 firstName 和 lastName 属性的值。在上述代码中,我们创建了新的 firstColor、secondColor 和 thirdColor 变量,并将它们分别初始化为 colors 数组的第一个、第二个和第三个元素。当你有一个对象,你想将它的属性赋值给一些变量时,你可以使用解构赋值。如果数组或对象的某些属性不存在或有默认值,你可以在解构时指定默认值。

2024-01-07 11:08:00 406

原创 深入理解Vue生命周期钩子及其应用

其独有的生命周期系统允许我们在组件的不同阶段执行自定义代码。在本文中,我们将深入探讨一个简单的Vue组件,通过观察其生命周期钩子的执行顺序,以及如何在特定时刻插入自己的逻辑。

2024-01-06 20:13:12 444

原创 axios拦截器的使用?

库,可以用于浏览器和Node.js。Axios具有拦截请求和响应的能力,使得我们可以在请求被发送之前或响应被处理之前对其进行修改或查看。方法可以很方便的添加自定义的拦截器。如果你希望在某个请求发送后立即执行某些操作,或者在某个请求返回后立即对它进行处理,那么这些拦截器就非常有用。对象,这将会影响请求。在响应拦截器中,你可以根据需要处理或修改响应。Axios是一个基于Promise的。在请求拦截器中,你可以修改。

2024-01-06 20:04:22 434

原创 Vue Router的介绍与引入

说大白话点就是它帮助你根据不同的 url 来展示不同的页面(组件),不用自己写 if / else路由配置影响整个项目,所以建议单独用config目录、单独的配置文件去集中定义和管理。Vue Router 是 Vue.js 的官方路由。它与 Vue.js 核心深度集成,让用 Vue.js 构建单页应用变得轻而易举。在这里是记录我引入Vue Router的全过程,引入方面也最好先看官方文档。展示由 Vue.js 的过渡系统提供的过渡效果。模块化、基于组件的路由配置。路由参数、查询、通配符。

2024-01-06 20:00:37 508

原创 缓冲区溢出攻击

在释放堆内存M时,会将M从链表上摘除,会执行M→head→tail=M→tail操作,如果攻击者通过溢出M临近的内存,将M的头指针、尾指针修改,让M的头指针指向攻击者设计好的虚拟节点,让M的尾指针指向攻击者设计好的位置,比如Shellcode,那么当执行完M→head→tail=M→tail操作时,该虚拟节点的尾指针就指向Shellcode,调用该虚拟节点的尾指针就会转向Shellcode。因此攻击者可以利用缓冲区溢出修改计算机的内存,破坏或控制程序的执行,导致数据损坏、程序崩溃,甚至是恶意代码的执行。

2024-01-06 19:58:41 1075

原创 npm指令

13、一个npm包是包含了package.json的文件夹,package.json描述了这个文件夹的结构。注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的node_modules下的内容。10、npm outdated:检查包是否已经过时,此命令会列出所有已经过时的包,可以及时进行包的更新。7、npm view moduleName engines:查看包所依赖的Node的版本。3、npm list:查看当前目录下已安装的node包。

2024-01-06 19:15:31 806

原创 Flash、Ajax各自的优缺点,在使用中如何取舍

Flash 和都是用于 Web 开发的技术,各自有一些优缺点。在使用中取舍需要根据具体的需求和情况来决定。

2023-12-30 19:32:45 2758

原创 前端如何性能优化

优化 DOM 操作:减少频繁的 DOM 操作,可以将操作集中在一起,或者使用 DocumentFragment 进行离线操作再一次性插入 DOM。延迟执行脚本:将 JavaScript 脚本放在页面底部,或者使用 async 或 defer 属性,使得脚本不会阻塞页面的加载和渲染。延迟加载 JavaScript:将不必要的 JavaScript 代码延迟加载,只在需要时再加载和执行,提高页面渲染速度。懒加载:延迟加载页面中的图片、视频等非关键资源,只有当用户滚动到可见区域时再加载,减少初始加载时间。

2023-12-30 19:29:38 2323

原创 什么是npm?能干什么?

npm的主要功能是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。允许用户从npm服务器下载别人编写的第三方包到本地使用。npm是Node.js的包管理器。

2023-12-29 20:00:09 2295

原创 vue计算属性和侦听器

computed是带缓存的,如果被依赖的变量不发生变化,则下次调用computed时不会重新计算结果。但是methods则是每次调用都会重新运行以得出实时的结果。watch 的第一个参数可以是不同形式的“数据源”:它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组。模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。(计算属性监测的是某个值的依赖的变化,侦听属性监测的是值自身的变化)注意,你不能直接侦听响应式对象的属性值,例如。

2023-12-29 19:58:26 487

原创 vue根据首字母排序

【代码】vue根据首字母排序。

2023-12-28 21:58:57 477

原创 【Vue】- 报错 Error in render: “TypeError: Cannot read properties of undefined (reading ‘nickname‘)“

在created()钩子函数请求接口并报错数据,渲染在dom元素是可以正常渲染,但是在中就会报错 Error in render: "TypeError: Cannot read properties of undefined (reading 'nickname')"

2023-12-27 19:08:48 2681

原创 vue页面跳转及传参

使用<router-link>跳转,<router-link> 默认会被渲染成一个 `<a>` 标签。router.go()类似于js的history.go(),0刷新,正数前进,负数后退。router.replace()替换历史堆栈中当前路由。router.push()在历史堆栈中添加路由,

2023-12-27 19:02:19 384

原创 vue中父子组件传值

绑定传的时候起的事件名,接收参数。触发,给一个事件传值。

2023-12-24 14:27:13 116

原创 js获取当前时间,并实时更新

这段代码会将当前时间格式化为 `xx:xx:xx` 的形式,并将其显示在id为 `time` 的元素中。同时,每秒钟会调用 `updateTime` 函数来更新时间。可以使用JavaScript的`Date()`对象来获取当前时间,并使用`setInterval()`函数实现实时更新。

2023-12-24 14:24:11 277

原创 什么是Vue的生命周期 ?

Componsition API中,生命周期是从vue中导出的,需要用到的要进行导入,setup除外。setup函数是发生在beforeCreate之前的。除setup外,其他的生命周期都是写在setup中。新老版本生命周期对比。

2023-12-23 09:01:12 37

原创 Vue——computed(计算属性和侦听器)

模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护,对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性。computed是带缓存的,如果被依赖的变量不发生变化,则下次调用computed时不会重新计算结果。但是methods则是每次调用都会重新运行以得出实时的结果。methods调用需要加()

2023-12-23 08:14:40 180

原创 vue ref和reactive的区别

ref主要用于基本类型的响应,比如String Number boolean,想要修改需要使用.value先获取value值进行修改reactive主要用于声明引用类型,修改时对应修改即可但是,在模板区域中使用的时候,ref因为Componsition API的封装,直接使用就行,不用加.value,但在setup函数中使用的时候必须加。ref 接受参数,并将其包裹在一个带有 value property 的对象中返回,然后可以使用该 property 访问或更改响应式变量的值。使用这两个的时候一定。

2023-12-22 10:36:10 639

原创 初学vue,使用vue完成基础购物车

直接上代码,简单好懂。

2023-12-22 10:00:31 44

原创 php 两表关联查询,Thinkphp连多表查询,关联2个或多个字段

当然,这只是一个小例子,where条件中的a.id代表a表中的id字段,b.id同理。LEFT JOIN就是php中连表查询中常用的,join()可以一直加下去(只要表名对应的字段存在,即a.user_id = b.id,a表中必须有user_id,b表中必须有id,条件才能成立)tp连表查询的问题:a表的user_id关联b表的id,a表的race_id关联c表的race_id,a表的race_id和user_id关联d表的race_id和user_id。b.*代表的是取b表中的全部数据。

2023-12-20 17:08:21 449

原创 MySQL通配符和正则表达式

{}量词,{m} 匹配某个字符正好 m 次,{m,} 匹配某个字符至少 m 次,{m,n} 匹配某个字符至少 m 次,但不超过 n 次;^匹配字符串的开始;在集合中(用[和]定义),用它来否定该集合,否则,用来指串的开始处。4.[^charlist] 或 [!LIKE 匹配整个列, REGEXP 在列值内进行匹配。[0123456789]可以简化为[0-9],匹配0,1,多个字符,但不匹配NULL。匹配不在字符列中的任何单一字符。匹配字符列中的任何单一字符。.匹配任意一个字符;$匹配字符串的结束。

2023-12-16 20:49:40 393

原创 前端知识(十八)——获取时间戳的方法

3、通过valueOf()函数返回指定的原始值获得精准的时间戳值。5、将时间对象转化为一个number类型的数值,即时间戳。注意:不推荐这种方法,毫秒级别的数值被转化为000。4、通过原型方法直接获得当前时间的毫秒值,准确。2、将字符串或者对象直接转化成时间戳。方法:Date.parse()方法:valueOf()方法:getTime()

2023-12-16 20:48:06 368

原创 mysql比较varchar值大小_Mysql varchar大小长度问题

varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时需要2个字节),因此最大长度不能超过65535。如果被 varchar 超过上述的 b 规则,被强转成 text 类型,则每个字段占用定义长度为 11 字节,当然这已经不是“ varchar ”了。导致实际应用中varchar长度限制的是一个行定义的长度。减30*3的原因是char(30)占用90个字节,编码是utf8。减2的原因是varchar头部的2个字节表示长度;除2的原因是字符编码是gbk。

2023-12-14 21:51:36 452

原创 MySQL增删改查

因为操作系统是中文操作系统,默认使用的 字符集是GB2312,所以需要把输出窗口使用 的字符编码改成gb2312才能够正常显示中文。函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有 返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。对于含有中文的数据插入,需要添 加 mysqli_query($conn , "setnames utf8");查询语句中你可以使用一个或者多个表,表之间使用逗号。语句开始查询的数据偏移量。来使用或输出所有查询的数据。属性来设定返回的记录数。

2023-12-14 20:21:31 251

原创 MySQL数据类型

数据类型(data_type)是指系统中所允许的数据的类型。MySQL数据类型定义了列中可以存储什么数据以及该数据怎样存储的规则。数据库中的每个列都应该有适当的数据类型,用于限制或允许该列中存储的数据。例如,列中存储的为数字,则相应的数据类型应该为数值类型。如果使用错误的数据类型可能会严重影响应用程序的功能和性能,所以在设计表时,应该特别重视数据列所用的数据类型。更改包含数据的列不是一件小事,这样做可能会导致数据丢失。因此,在创建表时必须为每个列设置正确的数据类型和长度。MySQL。

2023-12-13 10:17:24 237

空空如也

空空如也

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

TA关注的人

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