首页 > 其他分享 >vue面试2

vue面试2

时间:2023-08-17 17:44:51浏览次数:32  
标签:vue route 元素 面试 Vue 组件 路由

VUE2

1. 为什么.Vue被称为“渐进框架”?
  1. 使用渐进式框架的代价很小,从而使现有项目(使用其他技术构建的项目)更容易采用并迁移到新框架。Vue.js 是一个渐进式框架,因为你可以逐步将其引入现有应用,而不必从头开始重写整个程序。

  2. Vue的最基本和核心的部分涉及“视图”层,因此可以通过逐步将Vue引入程序并替换“视图”实现来开始你的旅程。

2.如何在单页Vue应用 (SPA)中实现路由?

可以通过官方的vue-router 库在用Vue构建的SPA中进行路由。该库提供了全面的功能集,其中包括嵌套路线、路线参数和通配符、过渡、HTML5历史与哈希模式和自定义滚动行为等功能。Vue还支持某些第三方路由器包。

3.如何确保在单文件组件中定义的CSS 样式仅应用于该组件,而不被用于其他组件?

这可以通过样式标签上的scoped属性来实现。

4.什么是插槽(slot)?

插槽允许你定义可以封装和接受子DOM元素的元素。组件模板中的<slot></slot>元素作为通过组件标签捕获的所有DOM元素的出应。

5.vue中transition的理解?

过渡动画主要包含6个class,分别为:

  1. v-enter:定义元素进入过渡的初始状态,在元素插入前生效,插入后一帧删除。

  2. v-enter-active:在元素插入前生效,在动画完成后删除。

  3. v-enter-to:在元素插入后—帧生效,在动画完成后删除,

  4. v-leave:离开过渡的初始状态,在元素离开时生效,下一帧删除

  5. v-leave-active:在离开过渡时生效,在动画完成后删除

  6. v-leave-to○离开过渡结束状态,在离开过渡下―帧生效,在动画完成后删除

6.vue-roter的钩子函数?
  1. 全局钩子

    router.beforeEach((to,from,next) => {
       
    })

     

  2. 单个路由钩子

beforeRouteEnter(to,from,next){
   
}
7.vuex的使用

Vuex是一个专为 Vuejs ,应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以―种可预测的方式发生变化,具体包括:

  1. state : Vuex使用单一状态树,即每个应用将仅仅包含一个store实例,但单状态树和模块化并不冲突。存放的数据状态,不可以直接修改里面的数据。

  2. getter: state的计算属性,类似,vue的计算属性,主要用来过滤―些数据。

  3. action: actions 可以理解为通过将 mutations里面处里数据的方法变成可异步的处理数据的方法,简单的说就是异步操作数据。view层通过store.dispath_来分发action。可以异步函数调用.

  4. mutation: mutations定义的方法动态修改Vuex的store中的状态或数据

  5. modules:项目特别复杂的时候,可以让每一个模块拥有自己的statemutation; action、getters,使得结构非常清晰,方便管理。

8.vue首屏白屏如何解决?
  1. 路由懒加载。

  2. vue-cli开启打包压缩和后台配合gzip访问。

  3. 进行cdn加速

  4. 开启vue服务渲染模式。

  5. 用webpack 的externals 属性把不需要打包的库文件分离出去,减少打包后文件的大小。

9.vue常用的修饰符?
  1. .stop:等同于JavaScript中的eventistopPropagation(),防止事件冒泡;

  2. prevent:等同于JavaScript 中的event.preventDefault(),防止执行预设的行为(如果事件可取消,则取消该事件,而不停止事件的进―步传播)

  3. .once:只会触发—次。

  4. .self:只会触发自己范围内的事件,不包含子元素;

10.vue的router和route区别
  1. Vue Router:

    • Vue Router 是一个用于管理前端路由的插件,它允许你在Vue应用中实现页面间的切换和导航。

    • Vue Router 提供了路由配置、路由导航、路由参数传递等功能,使得前端页面的导航和组织更加灵活和可控。

    • 通过配置路由表,可以定义不同的路由路径和对应的组件,从而实现不同页面的展示和切换。

  2. route(路由对象):

    • routeVue Router 提供的一个对象,表示当前路由的信息。

    • 在每个路由组件中,可以通过 this.$route 访问到当前路由的信息。

    • route 对象包含了当前路由的路径、参数、查询参数、路由元信息等等。

    • 通过 route 对象,可以获取当前路由的信息,进行相关的处理和判断。

11.vue-router实现懒加载的方式?
  1. vue异步加载

{
   path: '/home',
   name: "home',
   component: resolve => require(['@/components/home'],resolve)
}
  1. 路由懒加载(使用import)

const Home = 0 = > import('@/components/home')
{
   path: '/home',
   component: Home
}
12.delete和 Vue.delete删除数组的区别?

delete 只是被删除的元素变成了empty/undefined 其他的元素的键值还是不变。Vue.delete直接删除了数组改变了数组的键值。

13.路由跳转和location.href 的区别?

使用location.href="/url'来跳转,简单方便,但是刷新了页面;使用路由方式跳转,无刷新页面,静态跳转;

14.refs、$parent的使用?
  1. $ref:在子组件上使用ref特性后, this.属性可以直接访问该子组件。可以代替事件emit和$on的作用。

  2. $paren:$parent 属性可以用来从一个子组件访问父组件的实例,可以替代将数据以prop的方式传入子组件的方式;当变更父级组件的数据的时候,容易造成调试和理解难度增加;

标签:vue,route,元素,面试,Vue,组件,路由
From: https://www.cnblogs.com/yuan947022015/p/17638328.html

相关文章

  • 测试面试 | 怎么查看redis | linux
    总的来说就是查服务、查端口、查进程。1、查看服务状态servicestatusnginx / systemctlstatusredis 直接可以看到版本号pid 2、lsof-i:3306一般都是一个服务一个端口,不能两个服务一个,占用了,就起不来了. 3、ps-ef|grepredis  ......
  • vue3 文件上传进度条组件
    index.vue文件<template><divclass="confirm-modal"><transitionname="fade"><divclass="modal-dialog"@click="clickMaskToClose?handleCancel():null"v-if="visible"@tou......
  • 面试常用代码
    死锁publicclassDeadLockDemo{privatestaticObjectresource1=newObject();//资源1privatestaticObjectresource2=newObject();//资源2publicstaticvoidmain(String[]args){newThread(()->{synchronized(resou......
  • vue面试题1
    VUE11.那你能讲一讲MVVM吗?MVVM是Model-View-ViewModel缩写,也就是把MVC中的Controller演变成ViewModel。Model层代表数据模型,View代表UI组件,ViewModel是View和Model层的桥梁,数据会绑定到viewModel层并自动将数据渲染到页面中,视图变化的时候会通知viewModel层更新数据。2.简单......
  • vue中引入echarts
    1、先下载依赖包npminstallecharts-s//安装在目标项目中,如果想要全局安装就用-g2、引入2.1、全局引入main.js中importechartsfrom'echarts'Vue.prototype.$echarts=echarts//也可以用:import*asechartsfrom'echarts'2.2、局部引入component.vueimportechar......
  • vue2第一章
    1.安装两个vscode插件vetur--让.vue文件高亮和有语法提示VueVsCodesnippets--快捷写代码2.vue组件一个.vue文件就是一个组件,称为单文件组件<template><div>//这里写HTML注意:template只能有一个根节点</div></template><script>//导出一......
  • vue2第三章
    1.内置组件component渲染一个“元组件”为动态组件。依is的值,来决定哪个组件被渲染。vue内置组件<template><component:is="viewName"@updateView="updateView"></component></template><script>imports......
  • vue3第一章
    官方文档(中文版):https://vue3js.cn/docs/zh/视频:https://www.qiuzhi99.com/movies/vue3/1330.html语法对比:https://www.jianshu.com/p/4e7ba9e93402与2.x区别对比1.vue2和vue3双向数据绑定原理发生了改变vue2的双向数据绑定是利用ES5的一个apiObject.definePropert()对数......
  • JavaScript面试题3
    JavaScript31.移动端上什么是点击穿透?点击穿透有3种:点击穿透问题:点击蒙层(mask)上的关闭按钮,蒙层消失后发现触发了按钮下面元素的click事件跨页面点击穿透问题:如果按钮下面恰好是一个有.href属性的a标签,那么.页面就会发生跳转另一种跨页面点击穿透问题:这次没有mask了,直接......
  • vue实现课程表
    <template><div><divclass="panel"><el-table:data="timetable":span-method="objectSpanMethod"border:header-cell-style="{background:'#d9e5fd',color:'bl......