Vue2.x 生命周期
1. 有哪些生命周期系统自带:beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed2. 一旦进入到页面或者组件,会执行哪些生命周期,顺序。beforeCreatecreatedbeforeMountmounted3. 在哪个阶段有$el,在哪个阶段有$databeforeCreate 啥也没有created 有data没有elbeforeMount 有data没有elmounted 都有4. 如果加入了keep-alive会多俩个生命周期activated、deactivated5. 如果加入了keep-alive,第一次进入组件会执行哪些生命?beforeCreatecreatedbeforeMountmountedactivated6. 如果加入了keep-alive,第二次或者第N次进入组件会执行哪些生命周期?只执行一个生命周期:activated
谈谈你对keep-alive的了解
1. 是什么vue系统自带的一个组件,功能:是来缓存组件的。===》提升性能2. 使用场景就是来缓存组件,提升项目的性能。具体实现比如:首页进入到详情页,如果用户在首页每次点击都是相同的,那么详情页就没必要请求N次了,直接缓存起来就可以了,当然如果点击的不是同一个,那么就直接请求。
v-if和v-show区别
1. 展示形式不同v-if是 创建一个dom节点v-show 是display:none 、 block2. 使用场景不同初次加载v-if要比v-show好,页面不会做加载盒子频繁切换v-show要比v-if好,创建和删除的开销太大了,显示和隐藏开销较小
v-if和v-for优先级
ref是什么?
nextTick是什么?
scoped原理
1. 作用:让样式在本组件中生效,不影响其他组件。2. 原理:给节点新增自定义属性,然后css根据属性选择器添加样式。
Vue中如何做样式穿透
stylus样式穿透使用:>>>sass和less使用:/deep/通用使用: :v-deep
Vue组件传值
父-》子 :val=”obj”
子-》父 this.$emit(‘handleChange’, ‘Jack’)
computed、methods、watch有什么区别?
1. computed vs methods区别computed是有缓存的methods没有缓存2. computed vs watch区别watch是监听,数据或者路由发生了改变才可以响应(执行)computed计算某一个属性的改变,如果某一个值改变了,计算属性会监听到进行返回watch是当前监听到数据改变了,才会执行内部代码
props和data优先级谁高?
props ===> methods ===> data ===> computed ===> watch
Vuex有哪些属性?
state、getters、mutations、actions、modulesstate 类似于组件中data,存放数据getters 类型于组件中computedmutations 类似于组件中methodsactions 提交mutations的modules 把以上4个属性再细分,让仓库更好管理
Vuex是单向数据流还是双向数据流?
Vuex中的mutaitons和actions区别
mutaitons : 都是同步事物
actions : 可以包含任意异步操作
Vuex如何做持久化存储
Vuex本身不是持久化存储:1. 使用localStorage自己写、2. 使用vuex-persist插件
Vue设置代理
vue.config.js
module.exports = {publicPath:'./',devServer: {proxy: 'http://localhost:3000'}}
Vue路由模式
路由模式有俩种:history、hash区别:1. 表现形态不同history:http://localhost:8080/abouthash:http://localhost:8080/#/about2. 跳转请求history : http://localhost:8080/id ===>发送请求hash : 不会发送请求3. 打包后前端自测要使用hash,如果使用history会出现空白页
介绍一下SPA以及SPA有什么缺点
SPA是什么?单页面应用。缺点:1. SEO优化不好、2. 性能不是特别好
Vue路径传值
1. 显式http://localhost:8080/about?a=11.1 传:this.$router.push({path:'/about',query:{a:1}})1.2 接:this.$route.query.a2. 隐式http://localhost:8080/about2.1 传:this.$router.push({name:'About',params:{a:1}})2.2 接:this.$route.params.a
路由导航守卫有哪些
全局、路由独享、组件内1. 全局beforeEach、beforeResolve、afterEach2. 路由独享beforeEnter3. 组件内beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave使用场景:判断是否登录,如果登录就next否则就跳转到登录页面
Vue动态路由
场景:详情页(文章、商品)router.js配置:{path: "/list",name: "List",children:[{path:"/list/:id",name:'Details',component: () =>import("../views/Details.vue"),}],component: () =>import("../views/List.vue"),},
