这篇文章主要介绍“vue前台面试题有哪些”,在日常操作中,相信很多人在vue前台面试题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue前台面试题有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!1.vue性能优化的几种方案1.正确的选择v-if和v-show的使用,v-if有更高的切换消耗,v-show有更高的初始消耗2.路由懒加载:当页面很多,组件很多的时候,SPA页面在初次加载的时候,就会变的很慢。这是由于vue初次加载的时候把可能一开始看不见的组件也一次加载了,这个时候就需要对页面进行优化,就需要异步组件了。3.缓存:spa页面采用keep-al 香港云主机ive缓存组件4.图片懒加载:提高页面加载速度,不在可视区域内的图片先不加载,只有滚动到可视区域的时候才加载。一般借助外部插件如 vue-lazyload。使用只要要npm install vue-lazyload而后页面引入即用。5.SEO优化: ssr服务端渲染6.打包优化:对于少量过大的包采取cdn引入文件的方式而不是直接下载到本地。2.v-show和v-if谁的性能更高v-show本质就是通过控制css中的display设置为none,控制隐藏,只会编译⼀次;v-if是动态的向DOM树内增加或者者删除DOM元素,若初始值为false,就不会编译了。⽽且v-if不停的销毁和创立⽐较消耗性能。所以假如要频繁切换那么v-show性能更高,假如不是频繁切换,v-if性能更高3.vue之间的数据传递父到子:props子到父:$emit自己设置事件复杂组件的传递:通过vuex4.单文件组件中如何让样式只在当前组件生效在组件中的style前面加上scoped5.vue中的生命周期(钩子函数)共有8+2个钩子函数 基本的有8个,keep-alive中有2个beforeCreate(创立前) / created(创立后) / beforeMount(挂载前) / mounted(挂载后) beforeUpdate(升级前)/ updated(升级后) /beforeDestroy(销毁前)/ destroyed(销毁后)其中第一次加载页面会触发 beforeCreate, created, beforeMount, mounted 这几个钩子另外在keep-alive中,vue新添加了两个钩子函数activated:由于使用了keep-alive的组件会被缓存,所以created,mounted这种的钩子函数只会执行一次, 假如我们的子组件需要在每次加载的时候进行某些操作,可以使用activated钩子触发。deactivated:组件被移除时使用。6.vue父子组件生命周期的执行顺序加载渲染过程父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted子组件升级过程父beforeUpdate->子beforeUpdate->子updated->父updated父组件升级过程父beforeUpdate->父updated销毁过程父beforeDestroy->子beforeDestroy->子destroyed->父destroyed7.在vue中如何获取DOM元素给元素增加ref属性 通过this.$refs.domName获取8.key的作用需要使用key来给每个节点做一个唯一标识,Diff算法即可以正确的识别此节点。作用主要是为了高效的升级虚拟DOM。9.$nextTick的使用场景(作用)由于vue中数据升级是异步的,当你修改了data的值而后马上获取这个dom元素的值,是不能获取到升级后的值,你需要使用$nextTick这个回调,让修改后的data值渲染升级到dom元素之后在获取,才能成功。10.v-if和v-for的优先级v-if 与 v-for 一起使用时,v-for 具备比 v-if 更高的优先级,这意味着 v-if 将分别重复运行于每个 v-for 循环中。所以,不推荐v-if和v-for同时使用。假如非要一起用,可以把v-if放到外层元素,或者者不用v-if,先在计算属性中挑选出数据,而后在v-for11.v-model的原理vue 双向数据绑定是通过 数据劫持 结合 发布订阅模式的方式来实现的, 也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变;核心:关于VUE双向数据绑定,其核心是 Object.defineProperty()方法。12.什么是mvvmMVVM 将数据双向绑定(data-binding)作为核心思想,View 和 Model 之间没有联络,它们通过 ViewModel 这个桥梁进行交互。Model 和 ViewModel 之间的交互是双向的,因而 View 的变化会自动同步到 Model,而 Model 变化也会立即反映到 View 上显示。当客户操作 View,ViewModel 感知到变化,而后通知 Model 发生相应改变;反之当 Model 发生改变,ViewModel 也能感知到变化,使 View 作出相应升级。13.如何优化SPA应用的首屏加载速度慢的问题将公用的JS库通过script标签外部引入,减小app.bundel的大小,让浏览器并行下载资源文件,提高下载速度;在配置 路由时,页面和组件使用懒加载的方式引入,进一步缩小 app.bundel 的体积,在调用某个组件时再加载对应的js文件;加一个首屏 loading 图,提升客户体验;14.vue路由的两种模式,hash与history的区别hash —— 即地址栏 URL 中的 # 符号(此 hash 不是密码学里的散列运算)。比方这个 URL:ABC Home Page – ABC.com的值为 #/hello。它的特点在于:hash 尽管出现在 URL 中,但不会被包括在 HTTP 请求中,对后台完全没有影响,因而改变 hash 不会重新加载页面。history —— 利用了 HTML5 History Interface 中新添加的 pushState() 和 replaceState() 方法。(需要特定浏览器支持)这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的 功能。只是当它们执行修改时,尽管改变了当前的 URL,但浏览器不会立即向后台发送请求。因而可以说,hash 模式和 history 模式都属于浏览器自身的特性,Vue-Router 只是利用了这两个特性(通过调用浏览器提供 的接口)来实现前台路由。注意!!!history模式下,前台的url必需和实际向后台发起请求的url 一致,如http://www.abc.com/book/id。假如后台缺少对/book/id 的路由解决,将返回404错误。刷新也会报404由于会实际去请求数据。 (需要后台进行配置。vue官网有详情)15.如何处理vuex数据刷新丢失的问题由于store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被重新赋值如何处理:一种是state里的数据一律是通过请求来触发action或者mutation来改变(不推荐,当vuex数据很多项目很大的时候不适用)一种是将state里的数据保存一份到本地存储(localStorage、sessionStorage、cookie)中 (推荐)16.vue中如何实现跨域访问1.开发环境:配置vue.config.js proxy代理商2.生产环境:配置nginx代理商到此,关于“vue前台面试题有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注开发云网站,小编会继续努力为大家带来更多实用的文章!
怎么使 香港云主机用Jacoco统计服务端代码覆盖率,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用 Python + Coverage 来统计测试用例的代码覆盖率Jacoco 针对 Java …
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。