元素隐藏有几种方法,及 display:none 和 visibility: hidden 区别 ? 闭包是什么,闭包形成的原因和闭包的用途? js 异步轮询机制? ajax 是同步还是异步,ajax 的流程 ? Vue插件怎么封装? vue webpack打包优化? $nextTick的使用? vue项目打包优化? vue怎么做动画 ? vue插槽是什么, 有什么用?
时间: 2024-04-25 22:27:52 浏览: 137
2019年前端面试宝典
1. 元素隐藏的方法有以下几种:
- `display: none`:将元素从文档流中移除,不占据任何空间。
- `visibility: hidden`:元素不可见,但仍然占据空间,对文档流有影响。
- `opacity: 0`:元素透明度为0,不可见,但仍然占据空间。
- `height: 0; overflow: hidden`:将元素高度设为0,并隐藏溢出部分。
2. `display: none` 和 `visibility: hidden` 的区别在于,前者将元素从文档流中移除,不占据任何空间,后者仍然占据空间,但不可见。
3. 闭包指的是函数和函数内部能访问到的变量的组合。闭包形成的原因是,函数执行完后,其作用域链并不会被销毁,而是一直存在,直到其中的函数被销毁。闭包的主要用途是实现数据的私有化和封装。
4. JS异步轮询机制是指通过`setInterval`或`setTimeout`方法来每隔一段时间检查一次某个操作是否完成,如果完成则执行相关回调函数。这种方式常用于实现轮询请求或长连接等功能。
5. AJAX是异步请求,可以在不刷新页面的情况下向服务器发送请求并获取数据。其流程为:创建XMLHttpRequest对象 -> 发送请求 -> 服务器处理请求并返回数据 -> 客户端接收数据并处理。
6. Vue插件可以通过全局方法、指令、混入等方式来扩展Vue的功能。封装Vue插件的步骤一般包括定义插件、编写插件代码、注册插件等。
7. Vue的Webpack打包优化可以从以下几个方面入手:代码分割、按需加载、CDN引入、压缩代码、缓存优化等。
8. `$nextTick`是Vue中的一个方法,用于在DOM更新后执行回调函数,一般用于DOM操作之后需要获取DOM元素的情况。
9. Vue项目打包优化可以从以下几个方面入手:路由懒加载、组件懒加载、代码分割、CDN引入、压缩代码、缓存优化等。
10. Vue动画可以通过内置的`<transition>`组件和`<transition-group>`组件来实现。可以使用CSS过渡或JavaScript动画库来实现动画效果。
11. Vue插槽是一种特殊的Vue组件,用于在组件中插入内容。插槽可以分为具名插槽和默认插槽,可以通过`slot`属性来实现。插槽的主要作用是提高组件的复用性。
阅读全文