目录
问题1: v-show 与 v-if 有什么区别?" >问题1: v-show 与 v-if 有什么区别?
问题2:v-model 的原理?" >问题2:v-model 的原理?
问题3:Vue 组件间通信有哪几种方式?" >问题3:Vue 组件间通信有哪几种方式?
首页 web前端 Vue.js 看看这3道必问面试题,检验你的Vue掌握程度!

看看这3道必问面试题,检验你的Vue掌握程度!

Aug 16, 2022 pm 08:25 PM
vue

本篇文章给大家整理分享3道Vue必问面试题,检验一下大家对Vue的掌握程度,看看你是否都能答对!

看看这3道必问面试题,检验你的Vue掌握程度!

问题1: v-show 与 v-if 有什么区别?

此题属于考察面试者的Vue基础情况,一般只要用过Vue肯定会用到v-show 与 v-if。(学习视频分享:vue视频教程

v-if 指令用于条件性地渲染一块内容,而v-show也用于条件性展示元素。

使用v-show的元素会被渲染并保留在 DOM 中,并使用CSS的display来控制元素的显示和隐藏。v-show 不支持 <template> 元素,也不支持 v-else

使用v-if 是“真正”的条件渲染,元素的事件监听器和子组件都会被销毁和重建。v-if 也是惰性的,如果初始条件为false,则并不会渲染,直到变为true才会触发第一次渲染。而v-show不管条件是什么都会渲染,并根据display属性来控制显示隐藏。

一般来说,v-if的切换开销更大,而v-show只有初始渲染开销,如果元素需要频繁地切换,使用v-show,如果条件很少改变,则使用v-if更好。

问题2:v-model 的原理?

v-model指令主要用来在<input><select><textarea>表单元素或者组件上来实现数据的双向绑定。他并没有多神奇,只是监听了用户的输入事件来对数据进行更新。

v-model会根据不同的元素来触发不同的事件:

  • text 和 textarea 元素使用input 事件;
  • checkbox / radio 和 select使用change 事件;

拿input表单举例:

<input v-model=&#39;something&#39;>

<!-- 等价于 -->

<input v-bind:value="something" v-on:input="something = $event.target.value">
登录后复制

如果在自定义组件中:

<!-- 父组件: -->
<ModelChild v-model="message"></ModelChild>

<!-- 子组件: -->
<template>
  <div>{{value}}</div>
</template>

<script>
  export default {
    props:{
      value: String
    },
    methods: {
      test1(){
         this.$emit('input', '小红')
      },
    },
  }
</script>
登录后复制

在父组件中,修改message的值,子组件内的props的value字段就会自动更改,在子组件内触发input事件,那么父组件中的message值也会被更改。

问题3:Vue 组件间通信有哪几种方式?

这道题也是面试非常常考的一道题,能答出的方式越多,说明对Vue掌握的越熟练。一般组件间的通信大致分为3种:父子组件通信、爷孙组件通信、兄弟组件通信,下面我们分别来看:

  • props / $emit 适合父子组件间通信

    • 这也是Vue最基础的数据通信方式,如果这都不知道,那就没法往后聊了。
  • ref$parent / $children 适合父子组件间通信

    • ref如果用在组件上,可以拿到组件的实例对象,进行操作数据
    • $parent / $children:也可以访问父/子实例对象,进行数据操作
  • EventBus ($emit / $on)  适合父子、爷孙、兄弟组件通信

    • 这种方法是通过场景一个空的Vue实例来作为事件中心,用它来触发事件和监听事件,从而实现任何组件间的通信。
    • 使用EventBus这种方式有很多弊端,不建议大家在项目中去使用,知道这种实现思路就可以。
  • $attrs/$listeners 适合爷孙组件通信

    • $attrs:包含父作用域中不作为组件props和自定义事件的属性绑定和事件,并且可以通过 v-bind="$attrs" 传入内部组件。
    • $listeners:包含父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件。注意:在 Vue 3 中已被移除。事件监听器现在是 $attrs 的一部分
  • provide / inject 适合爷孙组件通信

    • 在爷爷组件上通过 provide 来提供变量,然后在孙子组件中通过 inject 来注入变量。
  • Vuex 适合 父子、爷孙、兄弟组件通信

    • Vuex是专门用来解决Vue应用程序中的状态管理问题。

(学习视频分享:web前端开发编程基础视频

以上是看看这3道必问面试题,检验你的Vue掌握程度!的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

vue怎么给按钮添加函数 vue怎么给按钮添加函数 Apr 08, 2025 am 08:51 AM

可以通过以下步骤为 Vue 按钮添加函数:将 HTML 模板中的按钮绑定到一个方法。在 Vue 实例中定义该方法并编写函数逻辑。

vue中怎么用bootstrap vue中怎么用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分为五个步骤:安装 Bootstrap。在 main.js 中导入 Bootstrap。直接在模板中使用 Bootstrap 组件。可选:自定义样式。可选:使用插件。

vue.js怎么引用js文件 vue.js怎么引用js文件 Apr 07, 2025 pm 11:27 PM

在 Vue.js 中引用 JS 文件的方法有三种:直接使用 &lt;script&gt; 标签指定路径;利用 mounted() 生命周期钩子动态导入;通过 Vuex 状态管理库进行导入。

vue中的watch怎么用 vue中的watch怎么用 Apr 07, 2025 pm 11:36 PM

Vue.js 中的 watch 选项允许开发者监听特定数据的变化。当数据发生变化时,watch 会触发一个回调函数,用于执行更新视图或其他任务。其配置选项包括 immediate,用于指定是否立即执行回调,以及 deep,用于指定是否递归监听对象或数组的更改。

vue返回上一页的方法 vue返回上一页的方法 Apr 07, 2025 pm 11:30 PM

Vue.js 返回上一页有四种方法:$router.go(-1)$router.back()使用 &lt;router-link to=&quot;/&quot;&gt; 组件window.history.back(),方法选择取决于场景。

vue多页面开发是啥意思 vue多页面开发是啥意思 Apr 07, 2025 pm 11:57 PM

Vue 多页面开发是一种使用 Vue.js 框架构建应用程序的方法,其中应用程序被划分为独立的页面:代码维护性:将应用程序拆分为多个页面可以使代码更易于管理和维护。模块化:每个页面都可以作为独立的模块,便于重用和替换。路由简单:页面之间的导航可以通过简单的路由配置来管理。SEO 优化:每个页面都有自己的 URL,这有助于搜索引擎优化。

怎样查询vue的版本 怎样查询vue的版本 Apr 07, 2025 pm 11:24 PM

可以通过以下方法查询 Vue 版本:使用 Vue Devtools 在浏览器的控制台中查看“Vue”选项卡。使用 npm 运行“npm list -g vue”命令。在 package.json 文件的“dependencies”对象中查找 Vue 项。对于 Vue CLI 项目,运行“vue --version”命令。检查 HTML 文件中引用 Vue 文件的 &lt;script&gt; 标签中的版本信息。

vue怎么用函数截流 vue怎么用函数截流 Apr 08, 2025 am 06:51 AM

Vue 中的函数截流是一种技术,用于限制函数在指定时间段内被调用的次数,防止性能问题。实现方法为:导入 lodash 库:import { debounce } from 'lodash';使用 debounce 函数创建截流函数:const debouncedFunction = debounce(() =&gt; { / 逻辑 / }, 500);调用截流函数,控制函数在 500 毫秒内最多被调用一次。

See all articles