热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Vue:面试题

供背书使用,内容比较简短,只限背书文章目录vue中如何封装一个组件Vue中computed和watch的区别?vue中插槽的理解v-show和v-if的区别什么是Vuex,在那种场




供背书使用,内容比较简短,只限背书



文章目录


  • vue 中如何封装一个组件
  • Vue 中 computed 和 watch 的区别?
  • vue 中插槽的理解
  • v-show 和 v-if的区别
  • 什么是 Vuex, 在那种场景下使用?
  • Vue 路由的使用步骤
  • 常见 Vue 组件库有哪些?
  • vue的mvvm原理
  • Vue 的生命周期
  • Vue 实现数据双向绑定的原理?
  • Vue组件的data为什么要使用return
  • 父组件向子组件传递数据
  • 子组件向父组件传递数据
  • 兄弟组件间的传递数据?
  • Vue 中有几种路由模式
  • Vue路由导航守卫
  • 路由中




    r


    o


    u


    t


    e






    route 和


    route和router 的区别?
  • vue 中 v-for的key 属性的作用?
  • Vue 有哪些常用的事件修饰符?
  • Vue 中如何解决插值表达式闪烁问题?
  • 如何实现给样式添加作用域
  • 动态添加一个路由规则
  • 何优化页面的加载效率
  • 路由懒加载
  • keep-alive 组件的作用是什么
  • vm.$nextTick(fn)有什么用
  • 混入(mixin)有什么作用


vue 中如何封装一个组件

.vue文件内部是三部分组成, template 模板部分, script 逻辑部分, style 样式部分
一定要在 script 部分使用 es6 模块化的导出语法(export default{}), 进行导出


Vue 中 computed 和 watch 的区别?

computed 是计算属性,可以根据 data 中的数据成员,动态计算出一个新的数据成员,必须有返回值
watch 是监视器,监视 data 中某一个数据成员的改变或路由中的某些属性的改变, 可以根据这个改变, 做一些其他操作


vue 中插槽的理解

Vue 中的插槽分为三种, 匿名插槽, 具名插槽, 作用域插槽.
父组件调用子组件标签时,加入新内容


v-show 和 v-if的区别

v-show 是通过 css 的方式来隐藏元素, 而 v-if 是根据条件是否成立决定是否要创建元素.
如果某个元素需要频繁切换显示状态的话, 建议是使用 v-show


什么是 Vuex, 在那种场景下使用?

Vuex 是针对 vue 的一个状态管理工具. 有几个核心的部分。
state 存储状态数据;
mutations: 更新数据的方法,
actions: 调用 mutations 中的方法, 更新 state 数据;
getters: 对 state 中的数据进行预处理
使用场景:当组件的关系比较复杂的时候, 可以使用 vuex 简化组件间的传值.


Vue 路由的使用步骤

1,下载路由模块 vue-router
2,创建路由对象
3,配置路由规则
4,将路由对象注册为vue实例对象的成员属性


常见 Vue 组件库有哪些?

PC 端组件库: element-ui, ant-design, iview
移动端: mint-ui, vant, vux


vue的mvvm原理
  1. 创建一个vue实例传入一个对象,vue遍历对象里的data对象,使用Object.defineProperty()得到data对象里所有属性的getter和setter。
  2. 实例创建后,会创建一个watcher(观察者),setter触发后会通知观察者,观察者回调函数中调用实例的render方法,重新生成虚拟dom。
  3. 虚拟dom:第一次渲染真实dom后,会生成一个虚拟dom,setter触发时(改变数据)通知观察者,观察者回调函数中调用实例的render方法,重新生成虚拟dom,新的虚拟dom会和之前的虚拟dom采用diff算法比较,最后操作真实dom。
  4. diff算法:在dom树中分层比较。利用key属性唯一的特点,加快了效率。

Vue 的生命周期

○ beforeCreate(开始进行一些数据和方法的初始化)
○ created(已经完成数据和方法的初始化, data 中的数据和 methods 中的方法可以使用了),
○ beforeMount(开始渲染虚拟Dom)
○ mounted(已经完成了虚拟dom渲染,可以操作真实dom)
○ beforeUpdate(data中的数据即将被更新,会执行)
○ updated(data中的数据已经更新完毕,会执行)
○ beforeDestroy(vue 实例即将销毁, 此时 data 中的数据和 methods 中的方法依然处于可用状态)
○ destroyed(vue 实例已经销毁, 此时 data 中的数据和 methods 中的方法已经不可用)


Vue 实现数据双向绑定的原理?

Vue 是使用数据劫持, 结合发布者订阅者模式实现双向数据绑定的


Vue组件的data为什么要使用return

直接使用data的话,组件在多个地方使用会出现数据互相影响,使用return每次返回新对象,就避免了数据互相影响。


父组件向子组件传递数据

父组件调用子组件标签上加上自定义属性传数据,然后在子组件里用props接收


子组件向父组件传递数据

子组件里使用$emit调用父组件的自定义事件,然后在父组件自定义事件的方法里接收数据


兄弟组件间的传递数据?

暂缺


Vue 中有几种路由模式

hash,history;可以在创建路由对象的时候,使用mode属性来切换路由模式


Vue路由导航守卫

路由守卫是在页面进行路由跳转的时候做一些处理
全局前置守卫beforeEach
全局后置守卫afterEach
路由独享beforeEnter
组件内部beforeRouteEnter


路由中




r


o


u


t


e






route 和


route和router 的区别?






r


o


u


t


e









































(






route 中存储的是跟路由相关的属性(如


route中存储的是跟路由相关的属性(如route.params,$route.query) ;





r


o


u


t


e


r









































(






router 中存储的是和路由相关的方法(如


router中存储的是和路由相关的方法(如router.push(),$router.go()),


vue 中 v-for的key 属性的作用?

Key 属性的作用是在数据层和视图层之间建立一一对应关系, 方便后期对页面进行局部更新. 如果某一条数据发生改变, 只更新当前数据对应的 DOM 元素.


Vue 有哪些常用的事件修饰符?

.prevent: 阻止默认事件;
.stop: 阻止冒泡;
.once: 事件执行一次;
.self:event.target是当前元素自身时触发处理函数


Vue 中如何解决插值表达式闪烁问题?

使用 v-html 或 v-text 替代插值表达式;
使用 v-clack 解决插值表达式闪烁


如何实现给样式添加作用域

style标签加上scoped属性


动态添加一个路由规则

router.addRoutes([{path:’’,component:’’}])


何优化页面的加载效率

使用路由懒加载和组件懒加载;
不要打包一些公共的依赖(vue, 组件库);
使用 CDN 加载这些依赖文件


路由懒加载

路由懒加载是指通过异步的方式来加载对应的路由组件(默认情况是将所有的组件全部加载并打包).


keep-alive 组件的作用是什么

keep-alive 可以将被包裹的组件暂存在内存当中, 当页面切换的时候, 组件不会被重复的销毁和创建, 从而可以提整体性能, 同时也可以保存组件的一些状态.


vm.$nextTick(fn)有什么用

延迟某个操作的执行,直到dom更新以后在执行


混入(mixin)有什么作用

分发 Vue 组件中的可复用功能,组件使用混入,就可以得到混入对象所有的属性和方法



推荐阅读
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文讨论了将HashRouter改为Router后,页面全部变为空白页且没有报错的问题。作者提到了在实际部署中需要在服务端进行配置以避免刷新404的问题,并分享了route/index.js中hash模式的配置。文章还提到了在vueJs项目中遇到过类似的问题。 ... [详细]
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有