vue面试题-牛客题
- 关于v-model的修饰符说法错误的是()
A.lazy修饰符让内容在“change”事件时而非“input”事件时更新。
B.v-model添加number修饰符,可以自动将用户的输入值转为数值类型。
C.可以给v-model添加trim修饰符,自动过滤用户输入的首尾空白字符。
D.v-model添加number修饰符,如果这个值无法被parseFloat解析,则会返回null。
解析:
v-model添加number修饰符,如果这个值无法被parseFloat解析,则会返回原始的值。
正确答案:D
- 现有以下代码,打印结果是()
new Vue({
data:{
a:"first",
b:"second"
},
created(){
console.log(this.a)
},
mounted(){
console.log(this.b)
}
})
A.“first”
B.“first” second
C.undefined undefined
D.空
解析:
由于vue实例没有初始执行DOM加载,所以不会执行mounted钩子函数。
正确答案:A
- 关于vuex说法错误的是()
A.actions通过commit触发mutations中的方法进行状态变更。
B.vuex是单项数据流变更数据
C.ajax一般放在mutations中,把获取到的数据存储state中。
D.由于vuex使用单一状态树,应用的所有状态会集中到一个比较大的对象
解析:
ajax一般放在actions中,actions通过dispatch调用mutations中方法把获取到的数据几种存储在state中
dispatch和commit来调用mutations的区别:
dispatch:含有异步操作,例如向后台提交数据,写法:
this. s t o r e . d i s p a t c h ( ′ m u t a t i o n s 方法 名 ′ ,‘值’ ) c o m m i t :同步操作,写法: t h i s . store.dispatch('mutations方法名',‘值’) commit:同步操作,写法: this. store.dispatch(′mutations方法名′,‘值’)commit:同步操作,写法:this.store.commit(‘commit方法名’,‘值’)
正确答案:C
- 下面说法错误的是()
A.watch监听对象必须设置deep:true。
B.数组直接通过索引修改属性值,能触发watch方法。
C.watch内部可以写异步方法。
D.immediate:true可以开启首次赋值监听
解析:
数组不能直接通过索引修改属性值触发watch方法。
vue无法监听数组变化的情况:
a.利用索引直接设置数组项时,例如:arr[indexofitem]=newvalue
b.修改数组长度时,例如:arr.length=newlength
正确答案:B
- 下列关于vue响应式的描述错误的是()
A.当利用索引值设置一个数组项时,vue不能检测到数组的变动。
B.当修改数组的长度时,vue不能检测到数组的变动。
C.vue可以监听对象属性的添加或删除
D.可以通过vue.set()方法嵌套对象添加响应式属性
解析:
vue无法检测property的添加或移动。由于vue会在初始化实例对property执行getter/setter转化,所以property必须在data对象上存在才能让vue将他转换为响应式的
正确答案:C