2022前端面试手册——HTML,CSS,浏览器相关(一)
网络中使用最多的图片格式有哪些JPEG,GIF,PNG,最流行的是 jpeg 格式,可以把文件压缩到最小。在ps以jpeg格式存储时,提供11级压缩级别。
请简述CSS盒子模型一个css盒子从外到内可以分成四个部分:margin(外边距),border (边框),padding(内边距),content(内容)。默认情况下,盒子的width和 height属性只是设置content(内容)的宽和高。盒子真正的宽应该是:内容宽度+左右填充+左右边距+左右边框盒子真正的高应该是:内容高度+上下填充+上下边距+上下边框
视频/音频标签的使用视频: <video src=””></video>
src 需要播放的视频地址
width/height 设置播放视频的宽高,和 img 标签的宽高属性一样
autoplay 是否自动播放
controls 是否显示控制条
poster 没有播放之前显示的展位图片
loop 是否循环播放
perload 预加载视频(缓存)与 autoplay 相冲突,设置了 autoplay 属 性,perload 属性会 ...
天凉好个秋
秋天到,兴致来,这不趁着周末报名了露营。
活动时间:2022年9月17日 13:00 - 21:00地点:浙江省湖州市德清尊蓝山居度假酒店活动通行券 298元/人
第一天约上小伙伴,开着借来的车(第一次开新能源车),从上海出发。
经过长途跋涉,终于顺利抵达。
体验了各个项目,偷偷摸了很多别人家的狗狗,也都太好看了叭。
如果不是太凉,还想跳下泳池扑腾两圈,哈哈哈哈!
晚上观看露天电影,好不惬意(也就被叮了几个包而已)。
散伙时,开车去往莫干山附近订的名宿。
当然晚上离不开烧烤饮料,伴随着夜晚凉爽山风,嬉闹声,水流声,虫鸣声,离开了城市的喧嚣,这一刻只有放肆。
当然咯,民宿的环境也是超级棒👍
第二天大早上往山上溜达了一圈,有不少蝴蝶🦋,山林郁郁葱葱,清风徐徐。
回来吃上了老板娘亲自做的早饭,很丰盛啦!
时间尚早,K歌时间到,鬼哭狼嚎一上午。
中午尝了一家土菜馆,风卷残云一顿收拾,舒服了…
下午就驱车去今天的重头戏——漂流点蓝天、白云、绿树、乡道、电驴 不断映入眼帘
第一次漂流没什么经验,在激情尖叫的同时,全程当个无情的舀水工…
结束后,果不其然全身湿透了,山风一吹,楼梯 ...
初识React之react-redux-toolkit
项目目前用的React版本是 17.0.2
react-redux负责状态管理,使用toolkit插件可以更加方便。
toolkit官网
1. 安装redux12npm install react-redux@latestnpm install @reduxjs/toolkit
2. 使用tookit
配置一个reduxStore
1234import { configureStore } from '@reduxjs/toolkit';export const store = configureStore({ reducer: {},});
把store发布到react项目中
12345678910import { Provider } from 'react-redux';import { store } from './app/store';import App from './App'; ...
初识React之路由懒加载
项目目前用的React Router版本是 V5
原理
利用React.lazy与import()实现了渲染时的动态加载
利用Suspense来处理异步加载资源时页面应该如何显示的问题
利用React.loadable实现组件按需加载
React.lazy
通过lazy()api来动态import需要懒加载的组件
import的组件目前只支持export default的形式导出
123456789import { BrowserRouter as Router, Route } from 'react-router-dom';import {lazy } from 'react';//懒加载需要写成const Home = lazy(()=>import('./Home'))return ( <Router> <Route exact path="/" component={Home}/> & ...
初识React之react-hooks
项目目前用的React版本是 17.0.2
React Hooks是什么?
Hooks是React 16.8.0版本增加的新特性/新语法
可以让你在函数组件中使用state以及其他的React特性
简单输入框,类组件和函数组件写法比较:
类组件123456789101112131415161718192021222324252627282930313233/** * @name 类组件*/import React from 'react';export default class Home extends React.Component { constructor(props) { super(props); this.state = { name: 'world' }; } componentDidMount() { console.log('组件挂载后要做的操作') } componentWillUnmo ...
初识React之router路由
项目目前用的React Router版本是 V5
快速开始
首先,安装create-react-app并用它创建一个新的项目
123npm install -g create-react-appcreate-react-app demo-appcd demo-app
yarn 安装 React Routeryarn add react-router-dom@5.3.0
主要组件React Router中的组件主要分为三类:
路由器: 例如BrowserRouter和HashRouter
路由匹配器: 例如Route和Switch
导航: 例如Link, NavLink, Redirect
简单例子如下:
1234567891011121314151617// React 应用中的 App.js 文件import React from 'react';import { BrowserRouter, Route } from 'react-router-dom'import Home from './ ...
初识React之proxy代理
react脚手架配置代理总结
方法一
在package.json中追加如下配置
1"proxy": "http://localhost: 5000"
说明:
优点:配置简单,前端请求资源时可以不加任何前缀
缺点:不能配置多个代理
工作方式:上述方式配置代理,当请求了3000不存在的资源时,那么该清求会转发给5000(优先匹配前端资源)
方法二
第一步:创建代理配置文件
1在src下创建配置文件:src/setupProxy.is //起名随意
编写setupProxy.js配置具体代理规则:
12345678910111213141516171819const proxy = require ('http-proxy-middleware')module. exports = function (app) { app.use( proxy('/api', { //api是需要转发的请求(所有带有/api前缀的请求都会转发给5000) target: & ...
初识React之key的作用
1) react/vue中的key有什么作用?(key的内部原理是什么?)2) 为什么遍历列表时,key最好不要用index
虚拟DOM中key的作用
简单的说: key是虚拟DOM对象的标识,在更新显示时key起着极其重要的作用
详细的说: 当状态中的数据发生交化时,react会根据[新数据]生成[新的虚拟DOM]随后React进行[新虚拟DOM]与[旧虚拟DOM]的diff比较, 比较规则如下:
旧虚拟DOM中找到了与新虚拟DOM相同的key:
若虚拟DOM中内容没变, 直接使用之前的真实DOM
若虚拟DOM中内容变了, 则生成新的真实DOM,随后替换掉页面中之前的真实DOM
旧虚拟DOM中未找到与新虚拟DOM相同的key:
根据数据创建新的真实DOM, 随后渲染到页面
用index作为key可能会引发的问题
若对数据进行: 逆序添加、逆序删除等破坏顺序操作会产生没有必要的真实DOM更新 ==> 界面效果没问題,但效率低。
如果结构中还包含输入类的DOM: 会产生错误DOM更新 ===> 界面有问题
注意: 如果不存在对数据的逆序添加、逆序删除 ...
初识React之新旧生命周期
一、React旧生命周期
初始化阶段:由ReactDoM.render()触发—初次渲染
constructor
componentWillMount()
render()
componentDidMount() =====>常用
一般在这个钩子中做一些初始化的事,例如:开启定时器、发送网络请求、订阅消息
更新阶段:由组件内部this.setsate()或父组什render触发
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
卸载组件:由ReactDoM.unmountcomponentAtNode()触发
componentWillUnmount()====> 常用
一般在这个钩子中做-些收尾的事,例如:关闭定时器、取消订阅消息
二、React新生命周期
初始化阶段:由ReactDoM.render()触发—初次渲染
constructor()
getDefivedStateFromProps
render()
componentDidMou ...
初识React之jsx核心语法
最近技术栈要更改为React啦,这一篇算是第一篇,一个新的开始!
定义虚拟DOM,不要写引号标签中混入JS表达式要用{}
表达式: 一个表达式产生一个值,可以放在任何一个需要值得地方
12345(1) a(2) a + b(3) demo(1)(4) arr.map()(5) function test() {}
语句(代码)
123(1) if() {}(2) for() {}(3) switch() {case}
样式的类名指定不要用class,要用className内联样式, 要用style=双括号key:value的形式去写虚拟DOM必须只有一个根标签标签必须闭合标签首字母
若小写字母开头,则将改标签为html中同名元素。若html中无该标签对应的同名元素,则报错。
若大写字母开头,react就去渲染对应的组件。若组件没有定义,则报错。