本篇文章给大家分享一些前端vue面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
vue面试题
1.vue-router是怎么传递参数的
2.v-if和v-for一起使用的弊端以及解决办法
3.beforeDestroyed里面一般进行什么操作
4.vue同级组件间怎么传值
5.vue中父组件如何获取子组件的属性和方法
6.watch和computed的区别
7.vue父组件和子组件生命周期的顺序
8.vue中父组件能监听到子组件的生命周期吗
9.vue中的事件修饰符主要有哪些?分别是什么作用
10.介绍下什么是860145511a4138cd77107d136ec1f24a
11.watch能监听到数组的pop行为吗
12.watch如何实现深度监听
13.vue中如何解决页面不重新渲染问题
(学习视频分享:vue视频教程)
vue面试题解析
1、vue-router有两种传参方式
(1)通过在router.js文件中配置path的地方动态传递参数 eg: path: '/detail/:id' 然后在组件内通过this.$route.params.id即可获取
(2).在router-link标签中传递参数
<router-link :to={ params: { x: 1 } } />
也通过this.$route.params获取
注意:这里通过router-link传递参数的方式是隐式传参
2、v-if和v-for一起使用的弊端以及解决办法
由于v-for的优先级比v-if高,所以导致每循环一次就会去v-if一次,而v-if是通过创建和销毁dom元素来控制元素的显示与隐藏,所以就会不停的去创建和销毁元素,造成页面卡顿,性能下降。
解决办法:在v-for的外层或内层包裹一个元素来使用v-if
3、beforeDestroy里面一般进行什么操作
beforedestoryed是组件销毁之前执行的一个生命周期,在这个生命周期里,我们可以进行回调函数或定时器的清除,不用的dom元素的清除等
4、vue同级组件间怎么传值
1.如果是兄弟组件,可通过父元素作为中间组件进行传值 2.通过创建一个bus,进行传值
// 创建一个文件,定义bus中间件,并导出 const bus = new Vue() // 在一个组件中发送事件 bus.$emit('事件名称', 传递的参数) // 在另一个组件中监听事件 bus.$on('事件名称', 得到传过来的参数)
5、vue中父组件如何获取子组件的属性和方法
vue中通过在子组件上定义ref属性来获取子组件的属性和方法,代码如下:
// 这里是父组件 <templete> <child ref="child"/> </templete> <script> method: { getChild () { this.$refs.child.属性名(方法名) } } </script>
6、watch和computed的区别
watch作用通常是由一个值影响多个值的改变并且能监听到这个值变化时,会去执行一个回调函数,此时我们可以在这个回调函数中做一些逻辑处理
computed是根据依赖的值衍生出一个新的值,并且依赖的值可以有多个,只有当被依赖的值发生改变时,才会重新去执行计算
【相关推荐:vue.js教程】
7、vue父组件和子组件生命周期的顺序
1)、渲染过程顺序:
父组件beforeCreate() -> 父组件created() -> 父组件beforeMount() -> 子组件beforeCreate() ->子组件created() -> 子组件beforeMount() -> 子组件mounted() -> 父组件mounted()
2)、更新过程顺序:
父组件更新过程:
父组件beforeUpdate() -> 父组件updated()
子组件更新过程:
父组件beforeUpdate() -> 子组件beforeUpdate() -> 子组件updated() -> 父组件updated()
3)、销毁过程
父组件beforeDestroy() -> 子组件beforeDestroy() -> 子组件destroyed() -> 父组件destroyed()
8、vue中父组件能监听到子组件的生命周期吗
父组件能够监听到子组件的生命周期,通过@hook:进行监听代码如下:
// 这里是父组件 <template> <child @hook:mounted="getChildMounted" /> </template> <script> method: { getChildMounted () { // 这里可以获取到子组件mounted的信息 } } </script>
9、vue中的事件修饰符主要有哪些?分别是什么作用
.stop: 阻止事件冒泡
.native: 绑定原生事件
.once: 事件只执行一次
.self:将事件绑定在自身身上,相当于阻止事件冒泡
.prevent: 阻止默认事件
.caption: 用于事件捕获
10、介绍下什么是keep-alive
keep-alive是用于做组件缓存的,只会执行一次,不会被销毁。被keep-alive包裹的组件,没有create和beforeDestroyed等方法,但是有activated和deactivated方法。
11、watch能监听到数组的pop行为吗
对于有返回值的数据,watch就能监听到,比如数组的pop,push, unshift,map等行为。
12、watch如何实现深度监听
watch: { obj: { handler: function(val) { }, deep: true // 深度监听 } }
13、vue中如何解决页面不重新渲染问题
(1).修改对象属性后页面未重新渲染可以使用 this.$set(对象名称, '属性名', '属性值') (2).使用this.$forceUpdate()方法可重新渲染页面
更多编程相关知识,请访问:编程视频!!
以上是13道前端vue面试题分享(附答案解析)的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript 不提供任何内存管理操作。相反,内存由 JavaScript VM 通过内存回收过程管理,该过程称为垃圾收集。

vscode自身是支持vue文件组件跳转到定义的,但是支持的力度是非常弱的。我们在vue-cli的配置的下,可以写很多灵活的用法,这样可以提升我们的生产效率。但是正是这些灵活的写法,导致了vscode自身提供的功能无法支持跳转到文件定义。为了兼容这些灵活的写法,提高工作效率,所以写了一个vscode支持vue文件跳转到定义的插件。

Node 19已正式发布,下面本篇文章就来带大家详解了解一下Node.js 19的 6 大特性,希望对大家有所帮助!

选择一个Node的Docker镜像看起来像是一件小事,但是镜像的大小和潜在漏洞可能会对你的CI/CD流程和安全造成重大的影响。那我们如何选择一个最好Node.js Docker镜像呢?

本篇文章给大家整理和分享几个前端文件处理相关的实用工具库,共分成6大类一一介绍给大家,希望对大家有所帮助。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器