算法入门
堆了解堆结构和堆排序
知识点数组去重的几种方式1.利用 ES6 Set 去重(ES6 中最常用)123function unique (arr) { return Array.from(new Set(arr))}
2、利用 for 嵌套 for,然后 splice 去重(ES5 中最常用)1234567891011function unique(arr){ for(var i=0; i<arr.length; i++){ for(var j=i+1; j<arr.length; j++){ if(arr[i]==arr[j]){ //第一个等同于第二个 arr.splice(j,1); //splice方法删除第二个 j--; } } ...
Vue3_博客系统
1.服务端1.1 安装expressnode.js的框架语言
1.2.安装插件1npm i multer
1npm i uuid
1npm i sqlite3@5.0.0
1.3 雪花算法1.4 数据库链接1.5 Promise封装部分方法1.6 管理员登陆和token的生成1.7 分类表增删改12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879//列表接口router.get('/list', async (req, res) => {//定义一个POST请求的路由处理函数,用于处理添加的请求。 const search_sql = "select * from `category`";//定义查询的SQL语句。 let {err,rows} = a ...
Express学习
一、express介绍express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方网址:https://www.expressjs.com.cn/
简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用(HTTP 服务)
二、express使用2.1 express 下载express 本身是一个 npm 包,所以可以通过 npm 安装
12npm initnpm i express
2.2 express 初体验大家可以按照这个步骤进行操作:
创建 JS 文件,键入如下代码
123456789101112//1. 导入 expressconst express = require('express');//2. 创建应用对象const app = express();//3. 创建路由规则app.get('/home', (req, res) => {res.end('hello express server');});//4. ...
Vue3+TS封装组件库项目
1.介绍2.项目文件结构安装eslint插件
项目文件结构
components
Button
Button.vue - 组件
style.css - 样式
types.ts - 一些辅助的typescript类型
Button.test.tsx -测试文件
hooks
useMousePosition.ts
初始化项目
vue官方基于vite的封装工具-create-vue https://github.com/vuejs/create-vue
npm create vue@3
Vite+Vue3+Typescript+ESlint
–save-dev 的作用--save-dev 是 npm install 命令的一个选项,它用于将安装的软件包(dependencies)添加到 devDependencies 中。
具体来说,它的作用是将软件包添加到项目的开发环境依赖项中,而不是生产环境依赖项。
在 Node.js 项目中,通常会有两种类型的依赖项:
生产环境依赖项(dependencies):这些是项目在生产环境中运行 ...
Vue3(结合TS基础知识)
Vue3本文档学习的内容如下:
1.Vite
2.Volar插件Volar 重大更新:改名为Vue - Official;支持Vue3.4;Take over模式被弃用;TypeScript Vue Plugin被弃用;
3.响应式基础ref的自动解包
为ref和reactive标注类型的方法
ref和reactive的区别
怎么选择ref和reactive
4.计算属性
5.watch监视计算属性允许我们声明性地计算衍生值。然而在有些情况下,我们需要在状态变化时执行一些“副作用”:例如更改 DOM,或是根据异步操作的结果去修改另一处的状态。
在组合式 API 中,我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数:
12345678910111213141516171819202122232425262728293031<script setup>import { ref, watch } from 'vue'const question = ref('')const answer = ref ...
TypeScript(一)
1.什么是TS
2.ts的优势
3.ts版本选择没有选择最新版,而是按照教程一致选择tsc 5.1.6
可以使用ts-node 运行ts文件
4.数据类型4.1 八种数据类型
4.2 any类型和unknown类型区别any 类型表示没有任何限制,该类型的变量可以赋予任意类型的值。
12345let x: any;x = 1; // 正确x = "foo"; // 正确x = true; // 正确
变量类型一旦设为any,TypeScript 实际上会关闭这个变量的类型检查。即使有明显的类型错误,只要句法正确,都不会报错。
1234let x: any = "hello";x(1); // 不报错x.foo = 100; // 不报错
实际开发中,any类型主要适用以下两个场合。
(1)出于特殊原因,需要关闭某些变量的类型检查,就可以把该变量的类型设为any。
(2)为了适配以前老的 JavaScript 项目,让代码快速迁移到 TypeScript,可以把变量类型设为any。有些年代很久的大型 JavaScript 项目,尤其是别人的代 ...
Vue实战项目_Github案例
组织结构:
1.Search组件
2.List列表组件
源码:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566List.vue<template> <div class="row"> <!-- 展示用户列表 --> <div v-show="info.users.length" class="card" v-for="user in info.users" :key="user.login"> <a :href="user.html_url" target="_blank"> <img :src="user.avatar_url" style= ...
Swiper
Swiper基本使用Swiper 使用方法1.首先加载插件,需要用到的文件有swiper-bundle.min.js和swiper-bundle.min.css文件,不同Swiper版本用到的文件名略有不同。可下载Swiper文件或使用CDN。
123456789101112<!DOCTYPE html><html><head> ... <link rel="stylesheet" href="dist/css/swiper-bundle.min.css"></head><body> ... <script src="dist/js/swiper-bundle.min.js"></script> ...</body></html>
2.添加HTML内容。Swiper7的默认容器是’.swiper’,Swiper6之前是’.swiper-container’。
123456789 ...
网络基础(二)
TCP/IPTCP/IP网络模型有哪几层?这个是一个测试
为什么要有 TCP/IP 网络模型?
对于同一台设备上的进程间通信,有很多种方式,比如有管道、消息队列、共享内存、信号等方式,而对于不同设备上的进程间通信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的设备,就协商出了一套通用的网络协议。
这个网络协议是分层的,每一层都有各自的作用和职责。
#应用层最上层的,也是我们能直接接触到的就是应用层(Application Layer),我们电脑或手机使用的应用软件都是在应用层实现。那么,当两个不同设备的应用需要通信的时候,应用就把应用数据传给下一层,也就是传输层。
所以,应用层只需要专注于为用户提供应用功能,比如 HTTP、FTP、Telnet、DNS、SMTP等。
应用层是不用去关心数据是如何传输的,就类似于,我们寄快递的时候,只需要把包裹交给快递员,由他负责运输快递,我们不需要关心快递是如何被运输的。
而且应用层是工作在操作系统中的用户态,传输层及以下则工作在内核态。
#传输层应用层的数据包会传给传输层,传输层(Transport Layer ...
你不知道的CSS
CSS定位css有四种定位方式,分别是相对定位,绝对定位,固定定位,粘性定位
相对定位:12position: relative;top: 40px; left: 40px;
相对定位是参考位置是自己原来的位置,在css布局中,父元素经常被设定为相对定位,子元素被设定为绝对定位,这被称为“父相子绝”
相对定位特点:
不会脱离文档流,元素位置的变化,只是视觉效果上的变化,不会对其他元素产生任何影响。就算出现覆盖了,也只是视觉上的覆盖,层级还是在这一层级,并没有出现浮动。
都发生定位的两个元素,后写的元素会盖在先写的元素之上。
left 不能和 right 一起设置, top 和 bottom 不能一起设置。
相对定位,经常会与绝对定位配合使用。
不推荐对相对定位的元素进行浮动和用margin调整位置
绝对定位:12position: absolute;top: 40px; left: 40px;
绝对定位的参考点是它的包含块
绝对定位元素的特点:
脱离文档流,会对后面的兄弟元素、父元素有影响。这点与相对定位对比
left 不能和 right 一起设置, top 和 bo ...