自定义博客皮肤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

代码搬运工

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

原创 nodejs学习笔记

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

2024-07-18 13:45:09 537

原创 HTTP协议

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

2024-07-15 14:19:25 328

原创 鸿蒙开发学习笔记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 875

原创 鸿蒙开发学习笔记2

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

2024-07-09 16:09:45 898

原创 面试 五

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

2024-04-02 15:44:50 871

原创 null和undefined的区别

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

2024-03-14 11:10:12 95

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

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

2024-03-14 11:09:47 672

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

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

2024-03-14 11:09:34 144

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

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

2024-01-24 16:14:20 2293

原创 DOM 的 diff 算法

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

2024-01-16 16:55:09 402

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

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

2024-01-15 17:40:34 395

原创 react 学习笔记

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

2024-01-12 18:54:25 995

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

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

2024-01-04 19:19:45 563

原创 驾驶舱大屏适配方案

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

2024-01-03 16:53:57 479

原创 vue3 学习

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

2023-12-05 16:24:24 181

原创 面试题 三

【代码】面试题 三。

2023-11-20 12:55:32 105

原创 typescript

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

2023-11-20 12:55:06 308

原创 webpack 高级

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

2023-11-01 20:29:17 627

原创 webpack基础

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

2023-10-26 22:42:32 526

原创 面试 4

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

2023-10-19 22:39:40 402

原创 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 63

原创 导出pdf

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

2023-08-21 17:20:35 809

原创 【无标题】

在配置文件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 71

原创 前端常用组件

常用组件总结

2023-03-11 11:40:24 94

原创 数字翻牌器

卡片式数字翻牌器

2022-11-01 17:21:21 664

原创 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 3888

原创 零碎内容总结

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 257

原创 面试题(二)

1、事件冒泡和事件委托事件冒泡<div @click="divClick"> <span @click="spanClick">123</span></div>代码中,点击span标签,不仅会触发span标签中的spanClick方法,还会触发div中的divClick方法,这个过程叫事件冒泡。事件从目标元素逐渐向上,由内到外的。事件委托<ul class='ul'> <li>1</li> &lt

2022-04-08 21:25:15 920

原创 flex布局纵向布局导致父元素高度没被撑起

现象:如下页面,使用 flex 左右布局,在移动端上面父元素的高度不会被撑起来,导致子元素内容被截取代码如下:解决办法:给父元素设置 align-items注:项目使用weex+flex开发的,自测有效,不确定其他情况下是否可行。...

2020-08-28 17:19:17 3453

原创 ES5 、ES 6 生成新数组

ES5 、ES 6 生成新数组://ES5//法一:let array=Array[5]; //需要通过循环去设置每一项的值//法二:let array=[]; //需要直接给数组赋值,或者push进数组//法三:Array.from({length:5},function(i){ return 1;})//法四:let array=Array(5).fill(7) //[...

2020-03-19 17:53:51 977

原创 ES6-10学习笔记

一、ES61、全局变量//两种生成全局变量的方法(都是写在函数体外)var a=123; b=456;//两种方法生成全局变量的区别://1、//没有使用 var 生成的全局变量,是作为window的属性存在,//不是真正意义上的全局变量,可以用 delete b (或者delete window.b)删除,删除之后获取b则是 not defind,//而通过 var 生成的全...

2020-03-17 20:51:36 534 1

原创 遍历方法

let arr=[1,2,3,4,5]1、for (有break,continue)for (let i=0;i<arr.length;i++){ console.log(arr[i])}2、forEach(不支持 break 和 continue)arr.forEach(function(item) console.log(item)})3、everyarr.ev...

2020-03-17 20:51:20 189

原创 面试题(一)

一、vue的生命周期beforeCreate:实例组件刚刚创建,元素和数据还有初始化created:数据data已经初始化完成,方法可以调用,但是dom未渲染,beforeMount:DOM未完成挂载,数据也初始化完成,但是数据的双向绑定还是显示{{}},这是因为Vue采用了Virtual DOM(虚拟DOM)技术,先占位mounted:数据和DOM都完成挂载,在上一个周期占位的数据把值...

2020-03-12 19:44:07 398 1

原创 各种方法

1、使用ctrl 、 shift 多选$(document).on('click', '.context_menu', function (event) { stopEvent(); var event = window.event || event; ClickData.push($(this).index()); if (ev...

2020-03-12 11:20:36 235

原创 列表排序

11、列表排序/* eslint-disable */// Array.prototype.find polyfillArray.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(r){if(null==this)throw new TypeError('"this" is null or...

2020-03-12 10:42:28 8176

原创 深度比较

function isObject(obj) { return typeof obj === 'object' && obj !== null}// 全相等(深度)function isEqual(obj1, obj2) { if (!isObject(obj1) || !isObject(obj2)) { // 值类型(注意,参与 equal...

2020-02-11 11:00:26 220

原创 微信小程序使用总结

1、wx:for 和wx:for-item例:var grids=[[1,2,3],[3,3,3],[3,51,4,5]]var arr=[1,2,3,4]<view> <view wx:for="{{grids}}" wx:for-item="row" class="grid-row clearfix" > &lt...

2019-12-24 18:05:24 207

原创 乱七八糟小知识总结

1、默认情况下,页面上有多个空格只会展示一个,可以用 css 修改word-wrap: break-word;word-break: break-all;white-space: pre-wrap;2、$(window).resize(function () {})监控浏览器窗口缩放3、IE 10 以上,password 类型的 input 在右方会有一个 小眼睛,点击显示明文,tex...

2019-11-19 14:35:41 188

原创 数组去重

1、indexOf 去重var arr=[1,2,1,2,2,1,3,4,5];var newArr = []; //一个新的临时数组for(var i = 0; i < arr.length; i++){ if(newArr.indexOf(arr[i]) == -1){ newArr.push(arr[i]); }}//newArr=[1,2,3...

2019-11-14 17:47:49 138

原创 cavans 文字换行

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-U...

2019-09-27 16:59:46 191

空空如也

空空如也

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

TA关注的人

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