2020年Web前端面试题之其他问题

1.你如何对网站的文件和资源进行优化?

  • 期待的解决方案包括:
  1. 文件合并
  2. 文件最小化/文件压缩
  3. 使用 CDN 托管
  4. 缓存的使用(多个域名来提供缓存)

2.请说出三种减少页面加载时间的方法

  1. 优化图片
  2. 图像格式的选择(GIF:提供的颜色较少,可用在一些对颜色要求不高的地方)
  3. 优化 CSS(压缩合并 css,如 margin-top, margin-left…)
  4. 网址后加斜杠(如 www.campr.com/目录,会判断这个目录是什么文件类型,或者是目录。)
  5. 标明高度和宽度(如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多, 浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。 当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载 后面的内容。从而加载时间快了,浏览体验也更好了)
  6. 减少 http 请求(合并文件,合并图片)

3.VUE项目中的优化

1.不要在模板里面写过多表达式
2.循环调用子组件时添加key
3.频繁切换的使用v-show,不频繁切换的使用v-if
4.尽量少用float,可以用flex
5.按需加载,可以用require或者import()按需加载需要的组件
6.路由懒加载
具体可参照:Vue 项目性能优化 — 实践指南(网上最全 / 详细)
此处至少需要记住理解10条;

4.用没用过git,说几个常用的命令?

git add .
git commit -m ‘m’
git push
git pull
git merge
git branch
git checkout xxx

5.VUE项目路由权限

前后端分离的权限管理基本就以下两种方式:

  1. 后端生成当前用户相应的路由后由前端(用 Vue Router 提供的API)addRoutes 动态加载路由。
  2. 前端写好所有的路由,后端返回当前用户的角色,然后根据事先约定好的每个角色拥有哪些路由对角色的路由进行分配。
  • 对比:
    • 第一种,完全由后端控制路由,但这也意味着如果前端需要修改或者增减路由都需要经过后端的同意;
    • 第二种,相对于第一种,前端相对会自由一些,但是如果角色权限发生了改变就需要前后端一起修改,而且如果某些(技术型)用户在前端修改了自己的角色权限就可以通过路由看到一些本不被允许看到的页面,虽然拿不到数据,但是有些页面还是不希望被不相关的人看到。
    具体:前端权限管理之 addRoutes 动态加载路由踩坑

6.你做过的项目中有什么亮点吗?有什么让你自豪的吗

比如:独立封装了什么什么组件,提高了代码的复用率,减少了冗余代码;

  • 图片资源懒加载
    对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。这样对于页面加载性能上会有很大的提升,也提高了用户体验。我们在项目中使用 Vue 的 vue-lazyload 插件:
    1. 安装插件
      npm install vue-lazyload --save-dev
    2. 在入口文件 man.js 中引入并使用
      import VueLazyload from ‘vue-lazyload’
      然后在 vue 中直接使用
      Vue.use(VueLazyload)
  • 路由懒加载:
    const Foo = () => import('./Foo.vue')
    const router = new VueRouter({
      routes: [
        { path: '/foo', component: Foo }
      ]
    })
    

    7.非技术问题

    1.自我介绍
    2.你上家公司为什么离职?
    3.你的期望月薪是多少?
    4.你对我们有什么问题要问吗?
    5.你都看过关于前端的哪些书?

猜你喜欢

转载自blog.csdn.net/Sheng_zhenzhen/article/details/113764335