前端面试题
1.强缓存和协商缓存参考文章(很详细):
https://blog.csdn.net/weixin_46358949/article/details/126312947
(1)强缓存使用强缓存策略时,如果缓存资源有效,则直接使用缓存资源,不必再向服务器发起请求。
强缓存策略可以通过 http 头信息中的 Expires 属性和 Cache-Control属性两种方式设置
命中后返回 200
只要设置了 Expires 属性或者 Cache-Control 都可以使用强缓存策略
Expires 是http 1.0出的,兼容IE
Cache-Control是http 1.1出的。所以Cache-Control优先级高于Expires
(2)协商缓存如果命中强制缓存,我们无需发起新的请求,直接使用缓存内容,如果没有命中强制缓存,如果设置了协商缓存,这个时候协商缓存就会发挥作用了。
命中协商缓存的条件有两个:
max-age=xxx 过期了
值为no-cache
使用协商缓存策略时,会先向服务器发送一个请求,如果资源没有发生修改,则返回一个 304 状态,让浏览器使用本地的缓存副本。如 ...
Vue服务端渲染
一、创建文件夹npm init -y
生成package.json文件
npm install vue vue-renderer --save
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、二、动态路由权限
三、递归拼接树形结构要求实现如下图:
变为下图这种树形结构
1.筛选一级菜单<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>递归拼接树形结构</title>
</head>
<body>
<script>
...
待看视频
webpack 尚硅谷https://www.bilibili.com/video/BV14T4y1z7sw?p=54&spm_id_from=pageDriver&vd_source=40343e879818778e9f033ea5053bf57aP54集
Vue相关面试题
1.父子组件如何通信?props
$emit
2.父子组件嵌套下的生命周期?一个完整的父子组件生命周期:父beforeCreate -> 父created-> 父beforeMount ->
子beforeCreate -> 子created -> 子beforeMount -> 子mounted -> 父mounted->
父beforeUpdate->子beforeUpdate->子updated->父updated->
父beforeDestroy->子beforeDestroy->子destroyed->父destroyed
hexo文章中如何放入图片?
hexo 文章中如何放入图片?修改_config.yml配置文件post_asset_folder项为true
使用命令创建博客
hexo new post "测试"
把图片放入 测试 的文件夹里面 ,.md 里面直接使用就会出现图片了
使用图片
终极解决方案
安装插件。
$ npm install hexo-renderer-marked --save
再修改一下配置文件_config.yml,加入下面的配置。
marked:
prependRoot: true
postAsset: true
在“Blog->source”下新建”imags“文件夹。注意”imags“与”_posts“同级。
在Typora中“文件->设置偏好->图像“。在插入图片时”复制到指定路径“设置为
../../source/images//${filename}
在”格式->图像->设置图片根目录“将”Blog->source“设置为根目录。
大功告成!以后想要在 md 里面使用图片,可以直接截图,粘贴就可以了。 ...
测试
测试使用 1.jpg 图片
MongoDB学习
1.安装MongoDB1.1.安装64位的MonogoDB
1.2.配置环境变量
添加如下内容:
C:\Program Files\MongoDB\Server\3.2\bin
1.3.在c盘根目录创建一个文件夹 data- 在data中创建一个文件夹db
1.4. 启动MongoDB 服务器win+R 打开cmd命令行窗口
- 输入 `mongod` 启动 `mongodb`服务器
- 32位注意:
第一次启动服务器时,需要输入如下内容
mongod --storageEngine=mmapv1
后续再次启动,不再需要
![image-20221206211727165](../images/MongoDB学习/image-20221206211727165.png)
可以通过如下命令行来指定 数据库的端口号(默认端口号为27017,不建议更改)
mongod –dbpath 数据库路径 –port 端口号
再打开一个cmd窗口
- 输入 `mongo` 连接`mongodb` ,出现` ...
JavaScript学习
一、JavaScript 入门1.1. 编写位置1.可以将 js 编写到网页内部的 script 标签
<script>
alert("哈哈!");
</script>
2.可以将 js 编写外部的 js 文件中,然后通过 script 标签进行引入
<script src="./script/script.js"></script>
3.可以将 js 代码编写到指定属性中
<button onclick="alert('你点我干嘛!')">点我一下</button>
<a href="javascript:alert(123);">超链接</a>
1.2. 基本语法
多行注释 /* */ (快捷键:shift + alt + a)
单行注释 //(快捷键:Ctrl+/)
JS 严格区分大小写
JS 中每条语句都应该以分号结尾JS中具有自动添加分号的机制,所以如果不写分号解释器会自动添加
1.3 字面量和变量字面量
- 字面量其实就是一个值,它所代表的含义就是它字面的意思
...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post$ hexo new "My New Post"
More info: Writing
Run server$ hexo server
More info: Server
Generate static files$ hexo generate
More info: Generating
Deploy to remote sites$ hexo deploy
More info: Deployment
鱼皮星球用户中心笔记
1.初始化项目(前端项目)# 使用 npm
npm i @ant-design/pro-cli -g
pro create MyCenterApp
#依赖安装的目录(推荐第一种)
cd MyCenterApp && yarn
// 或
cd MyCenterApp && npm install
小米饭插件的构建,这里请运行下面的命令,且保证是在umi@3项目中 (重要的事情说三遍文件夹MyCenterApp)
yarn add @umijs/preset-ui -D
运行项目
因为我们没有写后端,所有的数据全部是假的,是MOCK模拟出来的,当MOCK:none就登录不进去了
start和start:dev的区别在于前者有造好的假数据,包括写死的的用户名和密码。
开启umi UI帮助我们自动生成代码,在terminal执行yarn add @umijs/preset-ui -D ,就是下面图片中的米饭插件
2.项目瘦身1. 删除国际化
执行 i18n-remove 脚本
删除项目路径下 src/loca ...
腾讯云服务器笔记
第一步、访问腾讯云服务器官网登录后点击控制台,再点击轻量应用服务器
公网IP 很重要,不要轻易告诉别人,小心DOOS攻击
第二步、重置密码
第三步、创建快照(方便我们回滚)
上面的当地域配额:2,表示有两次创建快照的机会,多了会收费。
第四步、使用远程工具连接云服务器推荐使用Tabby
一般系统命令都是在 root 管理员下运行的,如果在非root用户下运行,可以在命令前加sudo
例子:
root: yum install vim
非root: sudo yum install vim
第五步、Mysql安装# 输入free -h 可以看到你的服务器的信息。
free -h
yum install mysql
yum install mysql-devel
yum install mysql-server
遇到询问都选择 y,然后回车
安装yum install mysql 和 yum install mysql-devel 都成功,但是安装yum install mysql-server 却失败了?
原因:
CentOS 7 版本将MySQL ...
JavaScript面试题
1.== 和 ===区别,分别在什么情况使用1.等于操作符等于操作符用两个等于号( == )表示,如果操作数相等,则会返回 true
等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等
两个都为简单类型,字符串和布尔值都会转换成数值,再比较
简单类型与引用类型比较,对象转化成其原始类型的值,再比较
两个都为引用类型,则比较它们是否指向同一个对象
null 和 undefined 相等
存在 NaN 则返回 false
2.全等操作符全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回 true。即类型相同,值也需相同
3.区别相等操作符(==)会做类型转换,再进行值的比较,全等运算符不会做类型转换
除了在比较对象属性为null或者undefined的情况下,我们可以使用相等操作符(==),其他情况建议一律使用全等操作符(===)
2.深拷贝浅拷贝的区别?如何实现一个深拷贝?3. 防抖与节流的区别? 如何手写防抖与节流?
<!DOCTYPE html>
<html lang="en">
<head> ...