1、关于Vue的生命周期,下列哪项是不正确的?[单选题](B)
A、Vue 实例从创建到销毁的过程,就是生命周期。
B、页面首次加载会触发beforeCreate, created, beforeMount, mounted, beforeUpdate, updated。
C、created表示完成数据观测,属性和方法的运算,初始化事件,$el属性还没有显示出来。
D、DOM 渲染在 mounted 中就已经完成了。
解析: beforeUpdate, updated首次出发不包括
beforeUpdate, updated,beforeUpdate,uodated只有数据更新时候才会触发
2、对于Vue中数据响应式原理的说法,下列哪项是不正确的?[多选题] (BD)
A、采用数据劫持方式,即Object.defineProperty()劫持data中各属性来实现数据响应式
B、视图中的变化通过Watcher更新data中数据
C、若data中某属性多次发生变化,Watcher仅会进入更新队列一次
D、通过编译过程进行依赖收集
解析:视图中变化通过
updated更新data中的数据。 与依赖收集有关的类:Dep和Watcher,Dep,典型的发布订阅模式, 是一个将监听器和可观测对象连接起来的数组。另外,watcher更新UI界面,不是更新数据。编译唯一目的是生成render函数,依赖收集只在各个组件初始化中过程收集依赖
3、关于Vue组件间的参数传递,下列哪项是不正确的?[单选题](C)
A、子组件给父组件传值,使用$emit方法
B、子组件使用$emit('someEvent')派发事件,父组件使用@someEvent监听
C、祖孙组件间可以使用provide和inject方式跨层级相互传值
D、父组件给子组件传值,子组件通过props接受数据
解析:
provide和inject适用于父子组件和跨级组件间的通信,是单向数据流
4、下列关于v-model的说法,哪项是不正确的?[单选题](C)
A、v-model能够实现双向绑定
B、v-model本质上是语法糖。它负责监听用户的输入事件以更新数据
C、v-model是内置指令,不能用在自定义组件上
D、对input使用v-model实际上是指定其:value和:input
解析: 允许一个自定义组件在使用
v-model时定制prop和event。默认情况下,一个组件上的v-model会把value用作prop且把input用作event,但是一些输入类型比如单选框和复选框按钮可能想使用valueprop来达到不同的目的。使用model选项可以回避这些情况产生的冲突。
5、下列说法不正确的是哪项?[单选题](B)
A、key的作用主要是为了高效的更新虚拟DOM
B、若指定了组件的template选项,render函数不会执行
C、使用vm.$nextTick可以确保获得DOM异步更新的结果
D、若没有el选项,vm.$mount(dom)可将Vue实例挂载于指定元素上
解析:
el、template、render(渲染函数)都是对vue对象对应的HTML元素(DOM对象);优先级顺序:el<template<render(渲染函数);
6、下列说法不正确的是哪项?[单选题](B)
A、使用 this.$parent查找当前组件的父组件。
B、使用 this.$children按顺序查找当前组件的直接子组件。
C、使用 this.$root查找根组件,并可以配合$children遍历全部组件。
D、使用 this.$refs查找命名子组件。
解析: 使用
this.$children查找当前组件的直接子组件,可以遍历全部子组件, 需要注意 $children 并不保证顺序,也不是响应式的。
7、下列关于vuex描述,不正确的是哪项?[单选题](C)
A、Vuex 是一个状态管理模式
B、Vuex主要用于多视图间状态全局共享与管理
C、在Vuex中改变状态可以通过mutations和actions
D、Vuex通过Vue实现状态响应式,因此只能用于Vue
解析:
vuex中改变store的唯一途径是提交mutation,通过调用实例化后的vuex,mutations中相对应的方法可以实现对状态的改变。另外,同步更改mutations;异步更改action,action中通过commit触发mutations进行state数据更改
8、下列关于vue-router的描述,不正确的是哪项?[单选题](C)
A、vue-router常用模式有hash和history两种
B、可以通过addRoutes方法动态添加路由
C、可以通过beforeEnter对单个组件进行路由守卫
D、vue-router借助Vue实现路由信息响应式,因此只能用于Vue
解析:
beforeEnter是单个路由的守卫,router.beforeEach是全局路由钩子,beforeRouteEnter才是组件路由钩子
9、关于vue服务端渲染,下列哪项说法是不正确的?[单选题](C)
A、通过服务端渲染,可以优化SEO抓取,提升首页加载速度
B、某些声明周期钩子函数(如beforeCreate、created)能同时运行在服务端和客户端
C、服务端渲染的vue.js是同构开发,因此vue扩展库可以在服务端应用中正常运行
D、组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后在客户端上"激活"为可交互的应用
Vue.js是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出Vue组件,进行生成DOM和操作DOM。然而,也可以将同一个组件渲染为服务器端的HTML字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序。 服务器渲染的Vue.js应用程序也可以被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行。*服务端是否可以使用vue扩展库没有明确的说明
10、关于typescript在vue中的应用,哪项说法是不正确的?[单选题](C)
A、使用TypeScript可获得静态类型检查以及最新的ECMAScript特性
B、TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript。意味着你完全可以用JS语法编写TS代码
C、使用Vue.extend({})方式声明组件不能获得TypeScript类型推断能力
D、基于类的Vue组件中如果要声明初始数据可以直接声明为实例的属性,如:message: string = 'Hello!'
Vue.extend({})可以声明组件
11、下列关于vue说法哪些是不正确的?[单选题](B)
A、vue简单易上手,性能高效,还便于与第三方库或既有项目整合
B、vue构建的项目复杂度增加较快,仅适合中小型项目
C、vue基于组件构建应用,代码组织简洁、易理解、易维护
D、vue借助虚拟DOM实现跨平台,服务端渲染,以及性能良好的DOM更新策略
12、下列关于vue原理哪些是正确的?[多选题] (ABCD)
A、Vue中数组变更通知通过拦截数组操作方法实现
B、编译器目标是创建渲染函数,渲染函数执行将得到VNode树
C、组件内data发生变化时会通知其对应Watcher执行异步更新
D、patching算法首先进行同层级比较,可能执行的操作是节