Vue面试题-经典篇

本文汇总了Vue.js的常见面试问题,包括Vue的优点、数据传递、指令比较、组件通信、CSS隔离、DOM获取、指令使用、vue-loader作用、key的作用、axios使用、v-model和v-if/v-show的用法等,旨在帮助开发者准备Vue面试。

Vue常见面试题

1.Vue优点

低耦合 视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
可重用性 你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
独立开发 开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
可测试 界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。

2.vue父组件向子组件传递数据?

1.父组件将数据绑定在子组件上

<template>
  <transition name="slide">
    <music-list :songs="songs" :title="title" :bg-image="bgImage"></music-list>
  </transition>
</template>

2.子组件接受数据props

export default {
   
   
  props: {
   
   
    bgImage: {
   
   
      type: String,
      default: ''
    },
    songs: {
   
   
      type: Array,
      default: () => []
    },
    title: {
   
   
      type: String,
      default: ''
    }
  },
}
3.子组件向父组件传递事件

在子组件里用$emit向父组件触发一个事件,父组件监听这个事件就行了
父组件

<template>
  <div>
    <child @fatherMethod="fatherMethod"></child>
  </div>
</template>
<script>
  import child from '~/components/dam/child';
  export default {
   
   
    components: {
   
   
      child
    },
    methods: {
   
   
      fatherMethod() {
   
   
        console.log('测试');
      }
    }
  };
</script>

子组件

<template>
  <div>
    <button @click="childMethod()">点击</button>
  </div>
</template>
<script>
  export default {
   
   
    methods: {
   
   
      childMethod() {
   
   
        this.$emit('fatherMethod');
      }
    }
  };
</script>
4.v-show和v-if指令的共同点和不同点

v-show指令是通过修改元素的display的CSS属性让其显示或者隐藏
v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果

5.如何让CSS只在当前组件中起作用

将当前组件的修改为<style scoped>

6.<keep-alive></keep-alive>的作用是什么?

包裹动态组件时,会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染。

7.如何获取dom

通过refs方法
HTML

<div id="App">
     <div class="aa" ref="menuItem" @click="aa($event)">aa</div>
    <div @click="bb"\>bb</div>
</div>

JS

<script>
     new Vue({
   
   
          el: '#App',
          methods: {
   
   
               bb: function() {
   
   
                    var getMenuText = this.$refs.menuItem.innerText;
                    console.log(getMenuText);//aa
               },
               aa: function(e) {
   
   
                    var el = e.target;
                    console.log(el);//<div class="aa">aa</div>
               }
          }
     })
</script>
8.说出几种vue当中的指令和它的用法?</
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值