自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qiao

代码搬运工

  • 博客(71)
  • 收藏
  • 关注

原创 项目中遇到的问题

文件列表中有文件上传功能,点击上传按钮,弹出模态框,在模态框的形式选择文件,进行上传。

2024-09-12 19:14:40 581

原创 three.js demo

【代码】three.js demo。

2024-08-20 17:13:30 229

原创 CommonJS 和 ES6 模块化

index.jsschool.jsstudent.jsES6 模块化index.htmlindex.jsstudent.jstemplate.jspackage.json

2024-08-19 13:13:42 158

原创 webpack - loader、plugin原理

/ 清除文件内容中 console.log(xxx)?/g, '')module: {rules:[options: {}]// 获取 webpack.config.js 中配置的对象/** Author:${// 获取 webpack.config.js 中配置的对象 const options = this . getOptions(schema) let prefix = ` /*

2024-08-15 10:15:00 625

原创 前端项目部署

而在生产环境中,使用的是打包出来的 html、css、js 这种纯文件,没有脚手架了,也就没有代理服务器对接口进行转发了,所以 ajax 访问的地址是错误的了。1)配置 vue 路由模式,将 history 模式改为 hash 模式,但是这种模式,地址栏比较丑,一般网站不会使用这种模式。出现这种情况的原因是:开发环境中,由脚手架提供了代理服务器,由代理服务器将接口进行转发。3)node 环境修改 - 使用。2)node 环境修改,使用。

2024-08-13 17:07:55 496

原创 vue3快速上手

修改名字

2024-08-08 17:40:46 755

原创 文件切片上传

/如果文件上传的起始位置大于文件大小,就return掉,否则继续上传。//根据切片信息,创建file对象。//上传成功后,继续上传下一个切片。//文件以1024个字节进行切片。//根据起始位置,将文件切片。//创建一个form数据对象。//获取文件名和文件后缀。//文件上传的起始位置。//定义blob文件名。

2024-08-08 16:33:23 144

原创 面试题(六)

状态管理:在hooks出来之前,函数组件就是无状态组件,不能保管组件的状态,不像类组件中调用setState,如果想要管理state状态,可以使用useState。按照截图方式在同一个组件中引用多个组件,如果 Hello 和 Welcome 组件存在相同类的不同样式时,后者会覆盖前者,所以需要样式隔离,使其互不影响。Promise.any() 会过滤掉所有rejected 的promise,而关注第一个fulfilled的promise的值。调用方式:如果是一个函数组件,调用则是执行函数即可;

2024-08-08 15:37:20 919

原创 项目功能点

相关对象files:通过 input 标签读取的文件对象blob:不可变的二进制内容,formData:用于和后端传输的对象fileReader:把文件读取为某种形式切片上传:6. files 对象和 blob 对象都可以通过文件的 fileObj.slice(start, end) 方法进行切片7. 对文件内容根据文件size和切片的size,通过 slice 进行切片。

2024-08-06 10:48:42 308

原创 nodejs -会话控制学习笔记

会话控制就是 对会话(根据用户)进行控制。HTTP 是一种无状态的协议,它没有办法区分多次的请求是否来自于同一个客户端(客户),无法区分用户,而产品中又大量存在这样的需求,所以需要会话控制解决该问题。

2024-07-25 16:26:02 1121

原创 nodejs - 接口 学习笔记

接口是 前后端通信的桥梁简单理解:一个接口就是 服务中的一个路由规则,根据请求响应结果接口的英文单词是 API (Application Program Interface),所以有时也称之为 API 接口这里的接口指的是『数据接口』, 与编程语言(Java,Go 等)中的接口语法不同。

2024-07-24 16:36:31 475

原创 nodejs - express 学习笔记

官方定义: 路由确定了应用程序如何响应客户端对特定端点的请求模板引擎是分离 用户界面和业务数据 的一种技术。EJS 是一个高效的 Javascript 的模板引擎。

2024-07-23 19:58:36 1071

原创 nodejs - MongoDB 学习笔记

Mongoose 是一个对象文档模型库,官网 http://www.mongoosejs.net/添加链接描述。

2024-07-23 19:56:07 763

原创 nodejs学习笔记

将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称为 模块化。其中拆分出的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用。编码是按照模块一个一个编码的,整个项目就是一个模块化的项目。将相对路径转为绝对路径,定位目标文件缓存检测读取目标文件代码包裹为一个函数并执行(自执行函数)。通过查看自执行函数缓存模块的值返回的值// 1、将相对路径转为绝对路径,定位目标文件// 2、检测缓存// 3、读取文件的代码。

2024-07-18 13:45:09 609

原创 HTTP协议

HTTP(hypertext transport protocol)协议;中文叫超文本传输协议是一种基于TCP/IP的应用层通信协议这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。协议中主要规定了两个方面的内容。

2024-07-15 14:19:25 347

原创 鸿蒙开发学习笔记1

一、下载 deveco-studio 编译器https://developer.huawei.com/consumer/cn/deveco-studio/#download二、ArkTs0、基本数据类型:3种:string、number、boolean1、存储数据(变量、常量)注:类似于 ts使用 console.log() 打印日志时,需要console.log('names', names)1)变量声明 let// let 变量名: 类型 = 值// 定义字符串let title

2024-07-09 16:10:14 974

原创 鸿蒙开发学习笔记2

*class 类名{方法名(参数...):返回值类型{逻辑...可以通过 this 获取实例对象}*/console.log(`你好,${/*class 类名{方法名(参数...):返回值类型{逻辑...可以通过 this 获取实例对象。

2024-07-09 16:09:45 1113

原创 面试题(五)

插槽分为三种:默认插槽 具名插槽 作用域插槽1.默认插槽【定义:默认插槽是将父组件的结构和数据插入子组件中,默认插槽只有一个插入位置,要插入的html结构和data数据必须在父组件中,不过css可以在子组件中】【简述:将父组件的自定义html和data插入子组件的对应位置】【特点:父组件决定结构和数据】2.具名插槽【定义:具名插槽和默认插槽类似,只是默认插槽只有一个插入位置,具名插槽可以有多个插入位置】【简述:将多个父组件的自定义html和data插入子组件的多个位置】

2024-04-02 15:44:50 894

原创 null和undefined的区别

typeof 一个没有值的变量返回 undefined。是一个只有一个值的特殊类型,表示一个空对象引用,用typeof检测,返回的时 object。是一个没有设置值的变量,

2024-03-14 11:10:12 104

原创 vue3+ts+vite 项目实战笔记

方法1:每增加一个全局组件,就手动引入,然后进行注册//main.ts 文件中//引入全局组件//注册全局组件注:如果要注册很多全局组件,这里就需要引入、注册多次,比较麻烦方法2:components 下新增 index.ts,在里面引入组件,遍历注册组件//引入 全局组件SvgIcon,Test//对外暴露插件对象//install 方法会在页面初始化时候执行,该方法有一个参数,该参数是 main.ts 中创建的 app 对象// 循环注册全局组件})//main.ts 文件。

2024-03-14 11:09:47 744

原创 vue3+ts+vite 项目实战笔记 2

2、在 vite.config.ts 文件中进行服务器配置。1、环境配置文件中把接口地址更改为实际的地址。

2024-03-14 11:09:34 165

原创 使用 create-react-app 创建 react 应用

/ 定义类式组件render() {return (Hello 组件Component// React 中使用了默认暴露和分别暴露,所以可以使用下面的引入方式// 定义类式组件render() {return (Welcome组件能使用以上引用方式是因为 React 中使用了默认暴露和分别暴露// 分别暴露 Component// 默认暴露 React。

2024-01-24 16:14:20 2644

原创 DOM 的 diff 算法

3)注意:如果不存在对数据的逆序添加、逆序删除等破坏顺序的操作,仅用于展示渲染列表,使用 index 作为 key 是没有问题的。1)若对数据进行:逆序添加、逆序删除等破坏顺序操作:会产生没有必要的真实 DOM 更新。===》几面效果没问题,但是效率低。2)如果结构中还包含输入类的 DOM:会产生错误的 DOM 更新 ===》界面又问题。1)react/vue中的 key 有什么作用?(key的内部原理是什么?2)为什么遍历列表时,key 最好不用 index?

2024-01-16 16:55:09 410

原创 高阶函数和函数的柯里化

通过函数调用继续返回函数的方式,实现多次接受参数最后统一处理的函数编码形式,叫做函数的柯里化。// 符合高阶函数第2条的定义,所以 saveFormData 函数叫做高阶函数。// 符合函数柯里化的定义,所以 saveFormData 函数也叫函数的柯里化。

2024-01-15 17:40:34 420

原创 react 学习笔记

定义函数,函数内部返回dom节点函数名首字母要大写,在react中,标签首字母大写表示是组件,小写则匹配对应的html标签使用将函数组件渲染到页面上React 解析组件标签,找到 MyComponent 组件发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DON,随后呈现到页面中也可使用将组件渲染到页面上。

2024-01-12 18:54:25 1020

原创 后台管理系统权限处理

菜单权限:根据登录角色的不同,用户拥有的菜单权限、按钮权限不同;其中,超级管理员具有所有的菜单、按钮权限,其他角色不定。

2024-01-04 19:19:45 633

原创 驾驶舱大屏适配方案

【代码】驾驶舱大屏适配方案。

2024-01-03 16:53:57 516

原创 vue3 学习

学习代码见:链接:提取码: olo8。

2023-12-05 16:24:24 207

原创 面试题(三)

【代码】面试题 三。

2023-11-20 12:55:32 122

原创 typescript

/{}用来指定对象中可以包含哪些属性//语法:{属性名:属性值,属性名:属性值}//在属性名后加上?,表示属性是可选的,但是需要在定义时罗列出来//使用[propname:string]:any,是上面?的简写,不需要一一罗列//定义对象:number};obj = {name: "张三",age: 18}obj = {name: "张三"}// obj = {name: "张三",age: 18, sex: "男"}//设置数组的类型声明//数组的类型声明:// 类型[]

2023-11-20 12:55:06 367

原创 webpack 高级

以上代码参考:链接: https://pan.baidu.com/s/1Y9fcso1l-Cyt-eIGKSfqow?pwd=9jh0 提取码: 9jh0。

2023-11-01 20:29:17 682

原创 webpack基础

1、webpack本身功能较少,只能处理js资源,一旦遇到css等其他资源会报错npm initmodeproduction。

2023-10-26 22:42:32 538

原创 面试题(四)

页面加载时,带有 async 的脚本也同时加载,加载后会立即执行,如果有一些需要操作 DOM 的脚本加载比较慢时,这样会造成 DOM 还没有加载好,脚本就进行操作,会造成错误。使用插槽可以将一些比较复杂的父传子的通信去掉,直接在父组件中完成后利用插槽显示到子组件中(这是由于父组件模板的内容在父组件作用域内编译,子组件模板的内容在子组件作用域内编译)。async、await看起来更加简洁,使得异步代码看起来像同步代码,只有await的代码执行完毕后才会执行下面的代码,与promise一样,也是非阻塞的;

2023-10-19 22:39:40 411

原创 vue学习

使用watch监测使用ref声明的对象person时,要用person.value,或者配置deep:true,否则监视不到person数据的变化。2、在需要接收props的组件上正常使用props接收、使用。该方式传参,to里面只允许用name,不允许用path。1、在需要传递props的路由上增加prop属性。vue-router query传参。vue-router param传参。缓存单个组件用字符串,多个组件用数组。vue-router的props。是组件里面 name 的配置项;

2023-09-14 15:30:05 78

原创 导出pdf

该方法导出的pdf大小是A4纸的尺寸,如果大于1页需要根据元素高度进行截断的话,页面元素需要加 class。元素,对元素高度和A4高度做比较,如果大于A4高度,会塞一个空白元素,确保每一个元素在换页的时候不会被分割。

2023-08-21 17:20:35 834

原创 【无标题】

在配置文件vue.config.js中,找到devServer对象的host属性。(vue-cli将host主机名定义为localhost,从而导致了本地IP不能访问服务)方法二:查看package.json文件,将scripts下的dev属性增加 --host 0.0.0.0。方法一:配置文件中的host属性重新定义为:0.0.0.0。然后重启服务,一般就可以实现这个功能了。注:防火墙:需要关闭电脑防火墙。

2023-05-12 10:37:03 96

原创 前端常用组件

常用组件总结

2023-03-11 11:40:24 117

原创 数字翻牌器

卡片式数字翻牌器

2022-11-01 17:21:21 705

原创 nginx Vue前端配置

1、打包文件使用 npm run build 命令,将项目打出来(dist目录)2、将 dist 目录上传至服务器3、修改 nginx.conf 配置nginx vue 配置upstserver { listen 9090 default_server; //修改端口 root /home/www/dist; //修改入口文件 location / { try_files $uri $uri/ /index.html; //解决单页面刷新404问题 }}ng

2022-04-24 21:05:35 3934

原创 零碎内容总结

1、css盒模型和怪异模型border-sizing: border-box/* 表示怪异盒模型 */border-sizing: content-box/* 表示标准盒模型 */怪异盒模型:元素的总宽度 = width(包括内容宽度+border+padding) + margin标准盒模型:总宽度 = width + border + padding + margin2、闭包3、作用域链要了解作用域链,首先要知道什么是作用域,作用域就是变量能够生效的区域,作用域分为全局作用域、局部作

2022-04-15 16:19:59 263

空空如也

空空如也

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

TA关注的人

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