2021面试总结

1.webpack 如何分离app(应用程序)和vendor(第三方库)入口?

webpack.config.js

module.exports = {
  entry: {
    main: './src/app.js',
    vendor: './src/vendor.js',
  },
};

webpack.prod.js

module.exports = {
  output: {
    filename: '[name].[contenthash].bundle.js',
  },
};

webpack.dev.js

module.exports = {
  output: {
    filename: '[name].bundle.js',
  },
};

说明: 这样配置是想要配置2个单独的入口点, 解决的问题打包时vendor中引入模块打包在一起成为单独的chunk,内容哈希保持不变,这使浏览器可以独立缓存他们,从而减少加载时间

Tip:

在 webpack < 4 的版本中,通常将 vendor 作为一个单独的入口起点添加到 entry 选项中,以将其编译为一个单独的文件(与 CommonsChunkPlugin 结合使用)。

而在 webpack 4 中不鼓励这样做。而是使用 optimization.splitChunks 选项,将 vendor 和 app(应用程序) 模块分开,并为其创建一个单独的文件。不要 为 vendor 或其他不是执行起点创建 entry。)

webpack常用的用的plugins
  • html-webpack-plugin :根据同一个模板生成多个页面
  • extract-text-webpack-plugin
  • UglifyJSPlugin : js压缩插件
  • CommonsChunkPlugin : 把多个页面中公用的文件抽出
  • clean-webpack-plugin : 打包过程前清除以前的文件
  • copy-webpack-plugin:
常用loader解析器
  • css-loader (解析css文件)
  • sass-loader/less-loader/node-sass (预编译解析)
  • file-loader/url-loader 解析图片(png,jpg/svg/gif)
  • 给css添加前缀: postcss-loader,autoprefixer
loader执行顺序

loader是文件加载器; loader是从右至左调用的

plugin执行

在webpack运行的生命周期中会广播出许多的事件,plugin可以监听这些事件,在合适的时机通过webpack提供的API改变输出的结果;
执行顺序: webpack启动后,在读取配置的过程中会执行new myplugin()初始化一个myplugin获取实例,在初始化compiler对象后,就会通过compiler.plugin监听到webpack广播出来的事件

2.vue data数据中对象内容更改没有触发组件更新

解决方式

// 假设
export default {
  data() {
     return: {
        obj: {
           a: 1,
           b: 2,    
        }
    }
  },
  mounted() {
    this.obj.c = 3 // 这样再插入数据时,对象本身没有改变,也就意味着vue检测不到数据内存指向做更改,导致插入的数据不具备`getter/setter`的属性
    Object.assign(this.obj, { c: 3 }); //这种方式替换一个内存指向完成数据变化
    this.$set(this.obj, "c", "2"); // 通过vue实例提供的$set方法,在不改变指向的同时,添加一个具备getter/setter属性的值
  },
}

3. vue 动态渲染组件方式

我们之前曾经在一个多标签的界面中使用 is attribute 来切换不同的组件:

 <component v-bind:is="currentTabComponent"></component>

注解: 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,我们让多个组件可以使用同一个挂载点,并动态切换。根据 v-bind:is="组件名" 中的组件名去自动匹配组件,如果匹配不到则不显示。改变挂载的组件,只需要修改is指令的值即可。

4.高阶函数

函数的参数是函数,或者函数的返回值是函数

5.git的操作

git fatch

git stash

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 废话少说,本文分四个部分,css、js、知识点一、知识点二、React(部分问题没有给出答案,后续更新) css面...
    666同学阅读 4,790评论 0 0
  • 一、如何创建vue项目? 1.安装node.js,并配置环境。(自行百度) 2.使用cmd安装淘宝镜像。(可不安装...
    Arvin0320丶阅读 2,860评论 0 1
  • 一、CSS相关问题 1、 行内元素,块级元素,空元素 行内元素有:a b span select strong(强...
    余音绕梁_0809阅读 3,709评论 0 0
  • 前端目录 HTML相关 CSS相关 JAVASCRIPT相关 DOM相关 HTTP相关 VUE相关 算法相关 网络...
    keyuan0214阅读 3,177评论 0 2
  • $HTML, HTTP,web综合问题 1、前端需要注意哪些SEO 3、HTTP的几种请求方法用途 4、从浏览器地...
    peng凯阅读 4,104评论 0 1