【小白学系列】知识点总结

148 阅读4分钟

1. 判断是否为严格模式

在非严格模式下,函数的调用上下文(this的值)是全局对象;在严格模式下,函数的调用上下文是undefined。

	var strict = (function(){return this === undefined})

2.对于中间件的理解

随着计算机技术的发展,IT厂商出于商业和技术利益的考虑,各自产品之间形成了差异,技术在不断
进步,但差异却并没有因此减少。计算机用户出于历史原因和降低风险的考虑,必然也无法避免多厂
商产品并存的局面。于是,如何屏蔽不同厂商产品之间的差异,如何减少应用软件开发与工作的复杂
性,就称为技术不断进步之后,人们不能不面对的现实问题。

显然,由一个厂商去统一多产品之间的差异是不可能的,而单独由计算机用户在自己的应用软件中去
弥补其中的大片空挡,由于技术深度和技术广度的要求,必然也是勉为其难。于是,中间件应运而生
。中间件试图通过屏蔽各种复杂的技术细节使技术问题简单化。

在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层
的东西,越底层越复杂,开发者不得不面临很多棘手的问题,如操作系统的多样性,繁杂的网络程序
设计、管理、复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全等等。这
些与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。于是,有人提出能不
能将应用软件索要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成
千上万的应用软件重复使用,这一技术思想最终构成了中间件这类的软件。

3.vue.config.js

module.exports = {
  //生成环境部署路径,默认为'/'
  publicPath: process.env.NODE_ENV === 'production'
    ? '/production-sub-path/'
    : '/'
  //当运行 build 时生成的生产环境构建文件的目录
  outputDir:'dist',
 //放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  assetsDir:'',
 //指定生成的 index.html 的输出路径 (相对于 outputDir)
  indexPath:'index.html',
 //默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,可设置false关闭
  filenameHashing:true,
  //在 multi-page (多页面应用)模式下构建应用
  pages: {
    index: {
      // page 的入口
      entry: 'src/index/main.js',
      // 模板来源
      template: 'public/index.html',
      // 在 dist/index.html 的输出
      filename: 'index.html',
      // 当使用 title 选项时,
      // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
      title: 'Index Page',
      // 在这个页面中包含的块,默认情况下会包含
      // 提取出来的通用 chunk 和 vendor chunk。
      chunks: ['chunk-vendors', 'chunk-common', 'index']
    },
    // 当使用只有入口的字符串格式时,
    // 模板会被推导为 `public/subpage.html`
    // 并且如果找不到的话,就回退到 `public/index.html`。
    // 输出文件名会被推导为 `subpage.html`。
    subpage: 'src/subpage/main.js'
  },
 //是否在开发环境下通过 [eslint-loader](https://github.com/webpack-contrib/eslint-loader) 在每次保存时 lint 代码
 lintOnSave:true,
 //调整 webpack 配置最简单的方式就是在 vue.config.js 中的 configureWebpack 选项提供一个对象:1.如果这个值是一个对象,则会通过 [webpack-merge](https://github.com/survivejs/webpack-merge) 合并到最终的配置中
  configureWebpack: {
    plugins: [
      new MyAwesomeWebpackPlugin()
    ]
  },
//2、如果这个值是一个函数,则会接收被解析的配置作为参数。该函数及可以修改配置并不返回任何东西,也可以返回一个被克隆或合并过的配置版本。
  configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置...
    } else {
      // 为开发环境修改配置...
    }
  },
  devServer: {
    proxy: 'http://localhost:4000',//这会告诉开发服务器将任何未知请求 (没有匹配到静态文件的请求) 代理到http://localhost:4000
  }
}

4.transform对定位元素的影响

当给一个元素添加transform属性的时候,这个元素就会具有relative的特性,子元素做定位时要注意。