1.什么是VUE?
渐进式JavaScript 框架 、核心库加插件、动态创建用户界面(异步获取后台数据,数据展示在界面)
5.Vue组件通信用哪些方法?
父传子(props[‘’]), 子传父($emit()发射一个),平行传递(采用bus总栈的方式传递)
6.v-if和v-show指令的共同点和不同点?
相同点:都可以让元素显示或隐藏.
不同点:v-if是通过DOM的方法实现显示或隐藏
V-show是通过css样式的方式实现显示与隐藏
7.如何让CSS只在当前组件中起作用?
答:在style标签里写入scoped属性
8.Vue里面如何获取dom元素?
方式一:直接在标签里加入id属性 通过document.getElementByid(‘’)的方式获取
方式二:采用ref的方式给相应的标签加上ref=’name’属性,通过在js里this.$refs.name获取到该元素.
注意:在获取相应元素之前在mount钩子函数里挂载,否则获取到的值为空.
9.为什么使用key?
答:因为key具有唯一性. 可以更高效的更新虚拟DOM 保持数据的唯一
10.v-model是如何实现的,通过那两个指令结合实现的?
v-model是用来在表单控件或者是组件上创建的 是通过v-bind和v-on两个指令结合实现
11.请说出Vue-CLI项目中src目录每个文件夹和文件的用法?
assets这个文件夹是用来存放外部css样式和img图片的.
Components这个文件夹是用来存放单文件模板
Plugins这个文件夹是用来存放axios异步请求ajax的js文件
Router这个文件夹是用来存放路由的js文件的.
Store这个文件夹是用来存放路由的vueX的js文件的.
View这个文件夹是用来存放视图模块的
12.举例computed和watch的使用场景?
都是以Vue依赖追踪机制为基础的
computed使用场景:一个数据影响多个数据
Watch使用场景:一个数据受多个数据影响
13.Vue组件中data为什么必须是一个函数
组件中data()写成一个函数,数据以函数返回值形成定义,这样每复用一次组件,就会返回 一次新的data,类似于给每个组件创建了一个私有的数据空间,让各个组件实力维护各自 数据,而不是单纯的写成对象的形式,就使得所有组件实例共用一份data,就会造成变了 全能变的结果.
14.第一次页面加载会触发哪几个钩子函数?
BeforeCreated(),created(),beforeMount(),mounted()
15.Vue-Router是什么?它有哪些组件?
路由 通俗来说就是页面的跳转,通过不同的path路径,向服务器发送不同的请求,来获取不同的资源
16.Vue-Router有哪几种导航钩子?
beforeRouterEnter
beforeRouterUpdate
beforeEach
17.$route和$router的区别?
router是vueRouter的一个对象通过vue.use(VueRouter)和VueRouter的构造函数得到一个router的实例这个对象是一个全局对象它包含了所有路由的许多关键对象和属性
Route是一个跳转路由对象,每一个路由都会有一个route对象,是个局部的对象可以获取相应的name,path,params,query等
18.谈谈你对面向对象的理解
世间万物皆对象,对象有具体的实例化,任何方法或属性都要写在对象(类)中
19.详细说一下你对Vue生命周期的理解
Vue生命周期分为8个阶段分别是创建前/后,载入前/后,更新前/后,销毁前/后
创建前/后:在beforeCreated阶段 vue实例挂载完el还没有
载入前/后:在beforeMount阶段 vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染。
更新前/后:当data变化时,会触发beforeUpdate和updated方法。