1.什么是vue.js?
vue.js是一个JavaScript的渐进式框架,同时拥有简单易学的API,由浅到深
2.说出几种vue指令及其用法
v-for 循环生成dom结构
v-show 控制元素显示隐藏
v-model 实现双向数据绑定
3.v-if和v-show的区别
v-if是通过删除和插入dom元素来控制元素显示隐藏的
v-show是通过控制元素的display属性来实现显示隐藏的(不同元素的display属性值不同)
4.什么是组件?
组件是一个单独的小型页面,包括HTML CSS JS
5.组件和vue实例的区别
1.组件不需要知道el
2.组件的data必须是个函数,return返回一个对象
3.组件是定义在模板上,通过调用渲染到页面,vues实例是直接渲染到页面上
6.组件中的data为什么是一个对象?
避免重用组件时,数据被污染,在调用组件的时候,如果需要修改data中的数据,那么其他调用该数据
的组件都会被修改,而改成对象,只要引用地址不变,数据不会改变
7.vue的响应式原理
vue开始执行的时候,会遍历data中的所有数据,通过Object.defineProperty()方法把他们转为getter()和setter(),
每个组件都有watch实例,当组件的setter被调用时,也就是修改数据的时候,通知watch进行更新,进而
视图更新
8.vue的几种组件传值
父组件传子组件
父组件:@value='data'
子组件:props:{value:{// 接收}}
子组件传父组件
子组件:this.$emit('自定义事件名称',data)
父组件:@事件名字='' // 接收
兄弟组件通信
借用一个公共的vue实例
组件1:vue.$emit('事件名字',data)
组件2:vue.$on('事件名字') // 注意在mounted()函数中接收
9.vue的生命周期函数时什么,分别有什么特点
beforeCreate() 实例创建完成,el没获取到,data也没获取到
created() el没获取到,data拿到了
beforeMount() 可以访问dom,数据没有替换
mounted()可以访问dom,数据替换完成
beforeUpdate() 获取更新前的dom
updated() 获取更新后的dom
beforeDestroy() 销毁前
destroyed() 销毁后
10.watch、methods和computed的区别
watch侦听器适合做异步操作或者时开销比较大的操作
computed 不能做异步操作,它是基于依赖进行缓存的,只有当它的相关依赖发生改变的时候
才会重新计算值返回
methods 定义方法的,每当重新渲染时,调用的方法总会再次执行该函数
11.vue的路由传参数和获取
params this.$route.parmes
query this.$route.query
12.route的区别
$route 是路由信息对象
$router 时路由实例对象
13.ref的作用
绑定到html元素上,可以通过this.$refs.name获取该dom元素,如果绑定在组件上,返回组件的实例
13.axios的特点
axios是一个基于promise对象的http库
axios可以请求数据,并自动将数据转化为json格式的数据
14.第一次加载页面会触发哪几个钩子
beforCreate() creaed() beforeMount() mounted()
15.keep-live组件的作用
保存活跃的组件,避免重新渲染
16.vue中实现动画的方法
通过transition内置组件配合指定类名加css实现动画效果
类名:
进入前,离开后
.name-enter,.name-leave-to
进入过程中,离开过程中
.name-enter-active,.name-leave-active
进入后,离开前
.name-enter-to,.name-leave
单一元素通过tansition实现,多个元素通过transition-group实现
17.v-on可以绑定多个事件么
可以
v-on="{mouseenter: onEnter,mouseleave: onLeave}”
18.v-on的常用事件修饰符
.stop 取消冒泡事件
.prevent 取消默认事件
.once 只触发一次
.self 只在绑定事件元素本身触发