vue 错题集
每天学习一点点,(ง •_•)ง
/(ㄒoㄒ)/~~ 以后刷提前要过一遍api啊 (╯▔皿▔)╯
1:Vue 支持 JSX。
2:Vue组件间传值可以通过props,$emit,Vuex,事件总线。通过props获取父组件的基本数据类型的值,在修改时会报错。
context是react中传值方法,在vue中类似react中context的方法是 provide/inject 。
3:v-if 与 v-show 区别:
优先级: v-if > v-show;
本质区别: v-if是根据布尔值的改变不断的对dom进行添加与删除;v-show是使用css的display属性进行显示与隐藏,dom节点始终都在。
4:自定义指令钩子函数参数"el"指所绑定的元素,可以直接操作DOM元素。如修改绑定元素的字体颜色:el.style.color = ‘red’。
5:下列关于webpack配置的描述错误的是( C )
A:module.rules可以指定多个loader,而loader的作用是对模块的源码进行转换
B:plugin是一个具有apply方法的JavaScript对象,由于plugin可以携带参数,所以必须在配置中向plugins属性传入一个实例
C:模块热替换会更替所有模块,立即在浏览器中进行更新
D:webpack开始处理程序时,从入口开始递归构建一个依赖关系图,包含了程序所需的模块,然后打包为少量的bundle,通常只有一个bundle
解析:模块热替换会在程序运行中,替换、添加、删除模块,无需重新加载整个页面,无需更替所有模块。
6:关于路由守卫说法错误的是( b )
A:Vue路由守卫分为全局路由、单个路由守卫、组件内部路由
B:全局路由守卫的钩子函数有:beforeRouteEach(全局前置守卫)、beforeRouteResolve(全局解析守卫)、afterRouteEach(全局后置守卫)
C:单个路由独享的钩子函数只有一个:beforeEnter
D:组件路由守卫相关的钩子函数:beforeRouteEnter、 beforeRouteUpdate、beforeRouteLeave
解析:全局路由守卫的钩子函数有: beforeEach(全局前置守卫)、beforeResolve(全局解析守卫)、afterEach(全局后置守卫)
7:下列对于MVVM说法 不正确 的是( C )
A: MVVM 是一种软件设计模式。
B:MVVM 是 MVC 的改进版。
C:Vue完全遵循了MVVM模型
解析:vue参考了MVVM模型,并不完全遵循,官网有自己写到。
mvvm是指 m模型-v视图-vm视图模型,双向绑定,数据交互通过vm来实现。vue主题也是按照这样的设计模式的。只去改变数据。通过双向绑定,自动更新视图。但是vue中添加了一个属性ref。通过$refs可以拿到dom对象,通过ref直接去操作视图。这一点上,违背了mvvm。
8:下列关于Node的描述 不正确 的是( A )
A:Node.js 并不能作为后台开发的语言,因其体量较小,不足以支撑接口API。 X
B:Node.js 被设计成单线程运行,但这并不意味着你无法利用到 CPU 的多个核心。
C:Node.js 在设计上类似于 Ruby 的 Event Machine 或 Python 的 Twisted 之类的系统。但 Node.js 更深入地考虑了事件模型,它将事件循环作为一个运行时结构而不是作为一个库来呈现。
D:Node适合大量并发的I/O,应用程序内部并不需要进行非常复杂的处理.
9:下列关于计算属性的说法正确的是( a )
A:计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。
B:computed 默认第一次加载不做监听。 x
C:计算属性不会进行缓存。 x
D:计算属性默认只有 getter,无法使用 setter。x
理由:计算属性会进行缓存,一次是在首次调用的时候,还有就是在计算属性所依赖的data中的数据发生改变的时候;
当修改了计算属性,也就是会调用setter,所以是可以使用setter的。 首次会监听。