- 博客(88)
- 资源 (5)
- 收藏
- 关注
原创 【ubuntu】安装mysql,开启远程登陆
https://blog.youkuaiyun.com/cyz141001/article/details/119028923
2025-02-06 16:36:07
418
原创 树莓派4B 搭建openwrt内置超多插件docker,nas等等使用教程
等待网口灯亮,进入192.168.1.1 默认账密 root password。上电,并且把网线两头分别插在pi网口上和电脑的网口上(电脑必须断网)5.等待网口灯有变化后断电重启,配置如图(根据主路由IP而定)进入系统后更改openwrt的网关地址相关配置。4.1 进入 系统 -> TTYD 进入终端。6.docker 配置。
2024-12-20 15:45:06
1165
原创 v-html 富文本中图片使用element-ui image-viewer组件实现预览,并且阻止滚动条
导入组件import ElImageViewer from "element-ui/packages/image/src/image-viewer";components:{ ElImageViewer },模板使用组件<el-image-viewer v-if="isShowPics" :on-close="closeViewer" :url-list="srcList" />定义两个变量isShowPics:false, sr
2024-11-12 15:54:55
445
原创 linux debian12 离线安装jdk1.8 (解决root和普通用户不能同时拥有java)
进入配置在secure_path后追加加上JDK工具的路径。ctl+x保存后就可以了。
2024-08-21 17:02:59
606
原创 【debian系统arm架构安装docker】且换源后依旧不行就离线导入镜像
在Debian系统上安装Docker并使用阿里云的镜像源可以通过以下步骤完成。
2024-08-10 13:59:39
1025
原创 【树莓派】初始化配置(自动连wifi,自动开启SSH)换清华源,远程桌面连接
注意: win使用 IP:3389 访问 默认账密 pi:raspberry。注意:按快捷键ctrl+x,会提示是否保存,按Y键确认即可。
2024-08-04 10:38:14
656
原创 【MySQL通关之旅】从山脚到山顶(傲视群雄版)
select * from 表名 where name like ‘%张’MarkdownText-to-HTMLAuthorsJohnLuke。
2023-05-21 19:46:54
2166
2
原创 [vue3] Fragment 和 Teleport 和 Suspense
Fragment在Vue2中: 组件必须有一个根标签在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在一个Fragment虚拟元素中好处: 减少标签层级, 减小内存占用vue框架已经做好的处理,作为程序员不需要写代码Teleport什么是Teleport?—— Teleport 是一种能够将我们的组件html结构移动到指定位置的技术。<teleport to="移动位置"> <div v-if="isShow" class="mask"> <
2023-03-05 12:15:29
228
原创 [PHP]TP6 CLI模式下创建tp6和多应用配置以及常见问题
命令行安装稳定版ThinkPHPcomposer create-project topthink/think `tp`tp => 项目的名称.可自定义创建完成后,配置项目包括但不限于(访问入口,伪静态,端口,域名),保证能正常访问到安装多应用模式扩展composer require topthink/think-multi-app删除 app 目录下的 controller 目录多应用模式部署后,记得删除app目录下的controller目录(系统根据该目录作为判断是否单应用的
2022-05-26 16:02:57
721
1
原创 【TP6】使用workerman websocket
前置安装和使用 workerman安装composer require topthink/think-worker使用php think worker启动php think worker:serverwebsocket客户端示例代码<!DOCTYPE html> <html> <head> <title>HTML5</title> <meta charset="utf-8" /> <sc
2022-05-25 10:56:37
2328
原创 [PHP] composer 安装
Composer 是 PHP 的一个依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。Composer 默认情况下不是全局安装,而是基于指定的项目的某个目录中(例如 vendor)进行安装。Composer 需要 PHP 5.3.2+ 以上版本,且需要开启 openssl。Composer 可运行在 Windows 、 Linux 以及 OSX 平台上。安装.
2022-05-25 10:19:37
800
原创 [PHP] CURL 的各种骚使用(GET,POST,上传下载图片,带认证,带COOKIE)
curl是个什么curl是一个库,能让你通过URL和许多不同种的服务器进行勾搭和深入交流,并且还支持许多协议。并且人家还说了curl可以支持https认证、http post、ftp上传、代理、cookies、简单口令认证等等功能啦前提PHP环境中安装和启用curl模块说明$ch = curl_init() 创建了一个curl会话资源,成功返回一个句柄;curl_setopt($ch, CURLOPT_URL, "baidu.com"),设置URL;curl_setopt($ch,
2022-05-23 10:42:58
979
原创 [JS] 对于原型和原型链的相关方法(instanceOf|setPrototypeOf|getPrototypeOf|isProrotypeOf|in|hasOwnProperty...)
instanceOf语法:object instanceof constructorobject:某个实例对象constructor:某个构造函数解释: 用来检测 constructor.prototype 是否存在于参数 object 的原型链上。Object.setPrototypeOf语法:Object.setPrototypeOf(‘现有对象’,‘原型对象’)解释: 为现有对象设置原型,返回一个新对象。Object.getPrototypeOf语法:Obj
2022-05-12 17:18:48
416
原创 [js]深浅拷贝的理解和多种实现方式(最终完整版)
深浅拷贝的区别浅拷贝将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用。深拷贝创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用”。为什么要用深拷贝?我们希望在改变新的数组(对象)的时候,不改变原数组(对象)深浅拷贝的实现浅拷贝因为是引用数据类型,修改赋值后的变量等于修改引用的地址数据,会修改原数据 let obj = {name:'张三'} let object = obj console.
2022-05-10 16:15:04
367
1
原创 [JS]深入理解原型和原型链以及区别(包含面试题详解)
原型一个可以被复制(或者叫克隆)的一个类,通过复制原型可以创建一个一模一样的新对象,也可以说原型就是一个模板,在设计语言中更准确的说是一个对象模板原型是定义了一些公用的属性和方法,利用原型创建出来的新对象实例会共享原型的所有属性和方法所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象所有函数都有一个prototype(原型)属性,属性值是一个普通的对象所有引用类型的__proto__属性指向它构造函数的prototype说说对原型的理解(面试题)在 Jav
2022-05-09 16:35:22
1784
原创 【GIT】stash暂存但不提交commit,可自由切换分支
描述官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。应用场景某一天你正在 feat 分支开发新需求,突然产品经理跑过来说线上有bug,必须马上修复。而此时你的功能开发到一半,于是你急忙想切到 master 分支,然后你就会看到以下报错:因为当前有文件更改了,需要提交commit保持工作区干净才能切分支
2022-05-06 17:09:49
2626
2
原创 [JS]事件冒泡和事件委派
事件冒泡上图说明两个概念捕获事件解释 从document到触发事件的那个节点,即自上而下的去触发事件,直到点击的那个节点结束栗子 设置从捕获事件let domDiv = document.getElementById('id')domDiv.addEventListener('click',()=>{},true)/**true:给该节点添加一个click事件,并且触发在捕获事件阶段 false:常用的冒泡阶段*/冒泡事件解释 从点击的节点开始自下而上的去触发
2022-04-29 10:47:09
323
原创 [JS]梳理原生对DOM的增删改查
在项目上一直都是用数据驱动试图(MVVM)的模式进行开发对于JS原生的操作很少了,陌生了许多,回顾下增删改查查元素代码说明备注document.getElementById(“id属性值”);根据元素绑定的id属性查询一个元素节点对象常用 且id必须唯一document.getElementsByName(“name属性值”);根据元素的name属性值查询一组元素节点对象 [返回数组]常用 多用于表单项[多选,下拉]document.getElements.
2022-04-21 17:27:33
418
原创 [JS]原生使用Object.defineProperty劫持数据,实现响应式数据驱动DOM(借助VUE2.X的核心思想)
举个栗子点击按钮只修改响应式数据,达到DOM更新和数据更新的功能核心思想定义需要被劫持的响应式对象数据对于定义的数据进行针对劫持,使用getter和setter进行对DOM的处理当点击功能按钮时,只需要修改定义的响应式数据就可以完整代码供体验 希望大佬指点不足之处供参考 下方注释掉的是JS原生操作DOM实现的<html> <head> <title>操作DOM</title> </
2022-04-21 15:27:37
1378
原创 [vscode]代码规范ESLint + Prettier 在vue项目中的使用和冲突解决[完美解决]
前言在创建项目的时候记得勾选使用代码规范ESLint把规矩都列出来写在文件里,规范大家的代码统一化如果代码不符合规则,ESLint就会报警高或者报红Prettier把规矩都列出来写在文件里,规范大家的代码统一化一键保存自动帮助大家通过统一的规则格式化代码使用在vscode中开发vue项目需要安装这三个插件在.eslintrc.js文件中配置rules属性[详细的规则见文档]举个栗子 规定字符串使用单引号和末尾不加分号 rules: { '
2022-04-18 16:36:49
1735
原创 彻底卸载VSCode软件包括插件和缓存
1.从控制面板找到 vscode 将其卸载此时仅仅是删除了应用软件,如果重新下载安装之前得插件和个人配置还会重新加载,所有需要完全删除插件和个人配置2.删除安装插件win+R 输入 %userprofile%3.删除用户信息和缓存信息在图示路径下,删除 Code 和 Visual Studio Code 文件夹,即可彻底删除用户信息和缓存信息如果找不到AppData文件夹,应该是隐藏了,可以在文件夹中点击 查看 勾选 显示隐藏文件和文件夹 即可找到或者 wi
2022-04-18 11:40:18
12206
原创 【JS】高级函数相同点和差异性[map|foreach|for|find|findIndex|filter|reduce](包括但不限于)
map用于改变数组中元素的值数据处理返回新数组,不改变原数组let arr = [1,2,3,5,4,6]let result = arr.map((item,index,arr)=>{ return item * 2})console.log(result) // 结果: [2, 4, 6, 10, 8, 12]foreachforEach 是 ES5 中操作数组的一种方法,主要功能是遍历数组,就是 for 循环的加强版,该语句需要一个回调函数,作为参数。回调函数的形参,
2022-04-18 10:51:48
264
原创 [正则表达式] 含义说明
表达式含义备注new RegExp(‘正则表达式’,‘匹配模式’)通过构造方法创建正则表达式字面量创建: / //[a-z]/从a到z的 “或”/[^a-c]/从a到c的 “除了”/a{3}/连续出现 a 3次/a{1,3}/连续出现 a 1到3次/a{3,}/连续出现 a 3次以上+至少一次相当于{1,}-0个相当于{0,}?0个或1个相当于{0,1}/^1/开头第以1开始/1$/结...
2022-04-15 16:25:57
351
原创 [JS基础] arguments 解释和实际使用场景
arguments 解释和实际使用场景在定义函数的时候,浏览器会给函数传入两个隐匿的参数函数的上下文对象 this 和 封装实参的对象 argumentsarguments是一个类数组对象,可以通过索引类操作实参,也可以获取实参长度会把我们传递的实参,同时会在arguments中保存arguments.length 可以获取实参的长度我们即使不定义形参,也可以传递实参,可以通过arguments使用(就是麻烦)arguments的属性callee => 就是指向当前函数的对象
2022-04-14 17:25:32
418
原创 [JS]this的多种嘴脸以及call和apply的相同点差异点
this的多种嘴脸第一定律:(1) 以方法方式调用时,this是绑定宿主对象 var obj = { method:() =>{ console.log(this) } } obj.method(); // obj(2) 以函数方式调用时,this是window对象 (调用全局函数)function fun(){ console.log(this) }fun() // window全局变量或函数都相当于window..
2022-04-14 16:22:15
312
原创 [JS]原型链的解释和梳理
链关系:自身 => 原型 => Object当我们使用一个属性或方法时,会先在自身查找自身如果有,则直接使用自身没有则去原型查找,原型上有则使用原型上没有,则去原型(Object)查找,有则使用,无则返回undefined举个栗子...
2022-04-13 16:17:32
119
原创 [vue3 + TS]祖组件和孙组件通讯provide+inject和注意点
祖组件和孙组件通讯 (依赖注入)祖组件//需求:需要孙组件及递组件调用方法`更新`祖组件的数据const updateTodoItem = ({ index, isCompleted }: { index: number, isCompleted: boolean }) => { todosData.todos[index].isCompleted = isCompleted}/**提供 or 依赖*/provide('update',updateTodoItem) /** (名
2022-04-06 17:06:45
1997
原创 [vue3 + TS] 父组件调用子组件的多种方法
主要用 ref<InstanceType<typeof 组件>>() 来获取各个子组件实例父组件<Footer ref="footerRef" />setup() { const footerRef = ref<InstanceType<typeof Footer>>() const parentClick = () => { footerRef.value?.handleFn('111') }
2022-04-02 17:46:41
5629
2
原创 [vue3] 子组件调用父组件的多种方法
子组件调用父组件的方法方法1 - 异步方式父组件定义供子组件调用的xx方法 @updata:xx=xx子组件中在setup的emit方法调用 context.emit(‘update:xx’)注意: .sync 在这里不好用父组件组件<my-childe ref="RefChilde" @update:xx="xx[被子组件调用的自身方法]"></my-childe>子组件组件setup(props, context) { function fn
2022-04-02 14:19:16
35529
3
原创 [TypeScript]接口interface详解
接口初探TypeScript 的核心原则之一是对值所具有的结构进行类型检查。我们使用接口(Interfaces)来定义对象的类型。接口是对象的状态(属性)和行为(方法)的抽象(描述)// readonly 修饰属性为只读// ? 这个属性(可选)可有可无interface IPerson { readonly id: number name: string age: number sex?: string}readonly 修饰属性为只读,一旦赋值后再也不能被改变了? 这个
2022-02-22 17:00:23
659
原创 [TypeScript] 最全数据类型解析
布尔值 let isDone: boolean = false; isDone = true;基本的数据类型就是简单的 true/false 值,在JavaScript 和 TypeScript 里叫做 boolean数字 let a1: number = 10 // 十进制和 JavaScript 一样,TypeScript 里的所有数字都是浮点数。 这些浮点数的类型是 number。 除了支持十进制和十六进制字面量,TypeScript 还支持 ECMAS..
2022-02-22 15:20:24
407
原创 【vue3】使用Hook函数来实现功能代码整合 从而模块化
Options API 存在的问题使用传统OptionsAPI中,新增或者修改一个需求,就需要分别在data,methods,computed里修改 。 sition API 的优势我们可以更加优雅的组织我们的代码,函数。让相关功能的代码更加有序的组织在一起。 ...
2022-02-21 14:55:00
381
原创 [vue3] 响应式数据的判断
响应式数据的判断isRef: 检查一个值是否为一个 ref 对象isReactive: 检查一个对象是否是由 reactive 创建的响应式代理isReadonly: 检查一个对象是否是由 readonly 创建的只读代理isProxy: 检查一个对象是否是由 reactive 或者 readonly 方法创建的代理...
2022-02-21 14:48:13
274
原创 [vue3] provide 与 inject
作用:实现祖与后代组件间通信套路:父组件有一个 provide 选项来提供数据,后代组件有一个 inject 选项来开始使用这些数据具体写法://祖组件setup(){ ...... let car = reactive({name:'奔驰',price:'40万'}) provide('car',car) ...... }//后代组件setup(props,context){ ...... const car = inject('car'..
2022-02-21 14:46:42
287
原创 [vue3]创建一个自定义的 ref
作用:创建一个自定义的 ref,并对其依赖项跟踪和更新触发进行显式控制。实现防抖效果:<template> <input type="text" v-model="keyword"> <h3>{{keyword}}</h3></template><script> import {ref,customRef} from 'vue' export default { name:'Demo', setup..
2022-02-21 14:40:37
285
原创 vue3 定义响应式数据的多种方式及分析
ref定义基本类型的响应式数据,原理通过Object.defineProperty()的get与set完成的。(对象类型不要用它,要用reactive函数)reactive定义一个对象类型的响应式数据(基本类型不要用它,要用ref函数)shallowReactive只处理对象最外层属性的响应式(浅响应式)shallowRef只处理基本数据类型的响应式, 不进行对象的响应式处理readonly让一个响应式数据变为只读的(深只读)应用场景: 不希望数据被..
2022-02-21 14:38:27
1188
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人