这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战
前端面试题汇总(一)
v-show和v-if有什么区别 什么时候使用最好
区别:v-if是通过控制dom节点的存在与否来控制元素的显隐;v-show是通过设置DOM元素的display样式,block为显示,none为隐藏;
什么时候使用:如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。
怎么实现文件上传功能,同时实时监测上传进度
主要是用HTML5的file api实现
返回当前 File 对象所引用文件最后修改时间,自 UNIX 时间起始值(1970年1月1日 00:00:00 UTC)以来的毫秒数。
返回当前 File 对象所引用文件最后修改时间的 Date 对象。
File.name 只读
返回当前 File 对象所引用文件的名字。
File.size 只读
返回文件的大小。
返回 File 相关的 path 或 URL。
File.type 只读
返回文件的 多用途互联网邮件扩展类型(MIME Type)
webpack 的优势
webpack 是以 commonJS 的形式来书写脚本滴,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。
支持很多模块加载器的调用,可以使模块加载器灵活定制,比如babel-loader加载器,该加载器能使我们使用ES6的语法来编写代码;less-loader加载器,可以将less编译成css文件;
开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。
可以通过配置打包成多个文件,有效的利用浏览器的缓存功能提升性能。
webpack.config.js
entry 是指入口文件的配置项,它是一个数组的原因是webpack允许多个入口点。
output是指输出文件的配置项
path - 表示输出文件的路径
filename – 表示输出文件的文件名
plugins 顾名思义,使用插件可以给webpack添加更多的功能,使webpack更加的灵活和强大,webpack有两种类型的插件:
webpack内置的插件
module 配置处理文件的选项
loaders 一个含有wepback中能处理不同文件的加载器的数组
test 用来匹配相对应文件的正则表达式
loaders 告诉webpack要利用哪种加载器来处理test所匹配的文件
loaders 的安装方法
npm install xxx-loader --save-dev
复制代码
resolve:其它解决方案配置;
resolve.root,绝对路径, 查找module的话从这里开始查找(可选)
resolve.modulesDirectories,取相对路径,所以比起 root ,所以会多 parse 很多路径。查找module(可选)
resolve.extensions,自动扩展文件后缀名,意味着我们require模块可以省略不写后缀名
resolve.alias,模块别名定义,方便后续直接引用别名,无须多写长长的地址\
vue的$nextTick
可以处理异步,在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。(官网解释)
解决的问题:有些时候在改变数据后立即要对dom进行操作,此时获取到的dom仍是获取到的是数据刷新前的dom,无法满足需要,这个时候就用到了$nextTick。
// 修改数据vm.msg = ‘Hello’// DOM 还没有更新Vue.nextTick(function () { // DOM 更新了})
// 作为一个 Promise 使用 (2.1.0 起新增,详见接下来的提示)Vue.nextTick() .then(function () { // DOM 更新了 })
什么是同源策略
所谓同源是指,域名,协议,端口相同。
当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的,即检查是否同源,只有和百度同源的脚本才会被执行。
如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。