vue生命周期
vue2原生是由八个生命周期钩子函数
beforecreate
created (获取数据)(发送请求)
beforemount
mounted(获取el,dom)(也可以发送请求)
beforeupdate
updateed
beforedestroy
destroyed
2. 进入组件
beforeCreate
created
beforeMount
mounted3. 如果加入了keep-alive会多俩个生命周期activated、deactivated(激活,停用)
如果加入了keep-alive,第一次进入组件会执行哪些生命?5.beforeCreate
created
beforeMount
mounted
activated
如果加入了keep-alive,第二次或者第N次进入组件会执行哪些生命周期?只执行一个生命周期:activated
路由面试题
路由模式+路由跳转+路由守卫+路由传参
1.路由模式有俩种:history、hash区别:
2..表现形态不同history:http://localhost:808/abouthash:http://localhost:808/#(锚点)/about2.跳转请求
history : http://localhost:8080/id===>发送请求hash 不会发送请求
3打包后前端自测要使用hash,如果使用history会出现空白页==路由跳转方式
1.router-link to+路径
2.this.$router.push()push里面写url地址,添加历史记录,点击退上一个
3.this.$router.replace()replace里面写url地址,不历史记录,点击退上上一个
4.this.$router.go(n)
==路由守卫
1:全局钩子: beforeEach、 afterEach
2:独享守卫(单个路由里面的钩子): beforeEnter、 beforeLeave
3:组件内守卫:beforeRouteEnter、 beforeRouteUpdate、 beforeRouteLeave{ path: '/', name: 'Home', component: () => import('../views/Home.vue'), meta: { isAuth: true }, beforeEnter: (to, from, next) => { if (to.meta.isAuth) { //判断是否需要授权 if (localStorage.getItem('school') === 'qinghuadaxue') { next() //放行 } else { alert('抱歉,您无权限查看!') } } else { next() //放行 } } },
==路由传参的几种方式
1.声明式导航传参(router-link)
2.编程式导航传参(this.$router.push)
每个分为两种paremes
和query
路由配置参数:
- path : 跳转路径
- component : 路径相对于的组件
- name:命名路由
- children:子路由的配置参数(路由嵌套)
- props:路由解耦
- redirect : 重定向路由
- 11. r o u t e 和 route和route和router的区别?
- $route是路由信息对象,包括‘path,hash,query,fullPath,matched,name’等路由信息参数;
$router是路由实例对象,包括了路由的跳转方法,实例对象等
路由相关——面试题_动态路由面试题_十一吖i的博客-CSDN博客
谈一谈对keep-alive的了解
keep-alive
1。是什么
vue系统自带的一个组件,功能:是来缓存组件的。===》提升性能
2使用场景
提升项目的性能。具体实现比如: 首页进入到详情页,如果用户在首
就是来缓存组件,当然如果点击的不是同一个,那么就直接请求。存起来就可以了,
v-if和v-show的区别
if是否有dom
show是否display:none
v-if和v-for的优先级
vue2
源码上就确定了
for》if
所以vue2 for 里if性能浪费
set
nextTick是什么?
获取更新后的dom元素用的
本身就是异步方法,可以在created里面获取dom
scoped的原理
样式只在当前页面生效 ,自动加一个data-v-adasdasdasd加一个类
vue中如何做样式穿透
::v-deep css及css预处理器都可以用
父组件传值到子组件
props +v-bind
子组件传值到父组件
$emit
click
兄弟组件之间的传值
全局事件总线
vuex
computed、methods、watch有什区别
computed vs methods区别
computed是有缓存的
methods没有缓存
2. computed vs watch区别
watch是监听,数据或者路由发生了改变才可以响应 (执行)computed计算某一个属性的改变,如果某一个值改变了,计算属性会监听到进行返回watch是当前监听到数据改变了,才会执行内部代码
props和data优先级谁高
props>data
ref是什么?
操作dom元素的
MVVM
v-model的数据双向绑定原理
v-bind input事件
diff算法开篇上集
Vuex面试题下集