面试

css盒子

公式: border+padding+margin+content
W3C标准盒模型中paddingborder所占的空间不在width、height范围内【标准模型 = width/height = content】
IE盒模型中width、height 包括content尺寸+padding+border【IE = width/height =boder+padding+content】

Git中分支merge和rebase的适用场景及区别

处理冲突的方式:
(一股脑)使用merge命令合并分支,解决完冲突,执行git add .和git commit -m’fix conflict’。这个时候会产生一个commit。
(交互式)使用rebase命令合并分支,解决完冲突,执行git add .和git rebase --continue,不会产生额外的commit。这样的好处是,‘干净’,分支上不会有无意义的解决分支的commit;坏处,如果合并的分支中存在多个commit,需要重复处理多次冲突。

viewport

viewport 是用户网页的可视区域。
在这里插入图片描述

rem

rem是CSS3新增的一个相对单位,它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。实现相对大小和绝对大小
公式 屏幕宽度 / 设计图宽度 * 100 = html font-size(0.01rem 等于设计图的 1px)

移动端适配的技术方案

(1)通过媒体查询的方式即CSS3的meida queries
(2) flex 弹性布局
(3)rem+viewport缩放
(4)rem 方式

块级格式化上下文BFC

具体了解

为什么要使用vuex而不是window.obj来维护全局的实例属性和方法呢

抽象业务逻辑,减少重复代码;比如异步获取的数据,不需要每个地方都写请求接口的代码,只需要store.dispatch(‘actionName’)

统一数据来源;一个数据可能来自:1.服务端 2.web socket的推送 3.响应用户操作之后对数据执行的运算符操作;没有使用vuex,你要在不同的地方写这三种其一的获取/修改数据的代码,而使用vuex只需要一句store.dispatch(‘actionName’)

Nodejs中的JWT和Session

用户认证与授权

使用Session

服务端:创建一个session对象保存用户登录信息和状态,该对象有唯一ID,并返回一个cookie给客户端
客户端:请求api时发送http头部自动带上cookie
这里使用cookie的方式需要引入两个插件:

express-session:node端的session中间件,主要用作配置session的属性并生成
cookie-parser:node端解析cookie对象

JWT

JWT是JsonWebTokens
这里引入两个插件,express-jwt和JsonWebTokens,-
JsonWebTokens:用作生成token
express-jwt:用作验证指定http请求的JsonWebTokens的有效性,如果有效就将JsonWebTokens的值设置到req.user里面,然后路由到相应的router
express-jwt内部引用了jsonwebtoken,对其封装使用。使用JWT形式进行认证与授权的思路

比较

JWT无状态,可扩展和解耦。使用JWT不需要后端进行记录,每个token都是独立的。而session的诞生就是为了解决http无状态的问题,这也就说明服务端是有存储每个用户对应的session对象的,扩展性会更繁琐些
跨域和CORS。每次发送请求到后端都需要检查JWT,只要验证通过就能处理请求。而Cookie只能在单域和子域中发挥作用
JWT生成消耗一定的内存,而且体积较大,最小的它都比cookie要大,如果JWT里包含了许多声明,那问题就比较严重了,由于每次向服务器发起请求都要携带token,太大了会造成请求缓慢
session比JWT好的地方在于在请求时浏览器会自动带http头部带上cookie,并且在用户持续使用时会不断地刷新session的过期时间,当浏览器关闭时自动清除session。相比之下JWT本身没法做到随着用户的使用而更新或手动清除,只能等自动过期

vue.js的设计模式

Mvvm的全称为:Model、View、ViewModel,
m表示数据模型层 , v表示视图层 , vm表示视图模型控制层

数据层M即为数组,视图层v就是用看到的渲染后的网页,视图模型层vm就是我们的js控制层,控制网页v和数据m同步(即数组数据改变了就重新渲染网页,网页变了就修改数组数据)

vue的优点是什么?

低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值