【前端面试总结】vue、react、webpack、babel面试总结

查看原文

Vue
基本使用
v-html
原始html内容,有xss防线

computed
有缓存,data不变不会重新计算
watch
监听引用类型,使用下面方法深度监听,但是拿不到oldVal

1
2
3
4
5
6
7
8
watch:{
info: {
handler (oldVal, val) {
console.log((oldVal, val)
},
deep: true
}
}
class 写法
1
2
3
4
5
6
7
8
data () {
isblack: true,
isRed: false,

black: "black",
red: "red"

}
:class={black: isblack, red: isRed}
或者

1
:class=[black, red]
style
object 类型,驼峰写法

v-if 和 v-show 区别
v-if 是否渲染,更新不频繁使用

v-show 是通过 css 的 display 控制显示与隐藏,频繁切换使用

v-for
也可以遍历对象
key,不能乱写,尽量不用index,不用random
v-for 优先级比v-if高
事件
event参数,自定义参数
没有参数,直接可以获取
有参数,用$event
event是原生对象
事件修饰符,按键修饰符
1
2
@click.stop.prevent
@click.ctrl.exact
!(观察)事件被绑定到哪里
event.target的值表明事件是挂在当前元素上的

表单
v-model
v-model.trim

v-model.lazy

v-model.number

组件使用
props
简写

1
props:[‘list’]
复杂写法,常用,可以定义类型和默认值

1
2
3
4
5
6
props: {
type: Array,
default:{
return []
}
}
$emit
父组件

1
<Input @add=“clickhandler”/>
子组件

1
2
3
4
5
methods:{
addTitle() {
this.$emit(‘add’, title)
}
}
组件通信 - 自定义事件(兄弟组件通信)
vue 具有自定义事件能力 o n 、 on、 onoff、$emit

组件卸载时,解除事件绑定,销毁子组件,定时器等

组件生命周期
挂载阶段
更新阶段
销毁阶段
单个组件
created:vue实例化完成

mounted:渲染完成

父子组件
组件实例创建: 先父后子

组件渲染: 先子后父【子组件渲染完,才能挂载】

高级特性
自定义 v-model
父组件中

1

子组件中 CunstomVModal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

<input type=“text” :value=“txt” @input=“$emit(‘chage’, $event.target.value)”

$nextTick、refs
vue 是异步渲染
data 改变之后,dom不会like渲染
$nextTick 会在dom渲染之后被处罚,以获取最新的dom节点
slot
基本使用
作用于插槽
具名插槽
动态组件
:is=”component-name”
需要根据数据,动态渲染的场景。即组件类型不确定
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15


异步组件
import()
按需加载,异步加载大组件
1
2
3
4
5
export default {
components:{
Demo: () => import(‘./ImportDemo’)
}
}
keep-alive
缓存组件
频繁切换,不需要重复渲染
vue常见性能优化
1
2
3
4
5
6
7
// 每个组件只渲染一次,且不会销毁。
// 简单的用v-show就行,稍微复杂的用keep-alive





mixin
多个组件有相同的逻辑,抽离出来
mixin并不是完美的解决方案,会有一些问题
vue 3 提出的 composition API 旨在解决这些问题
问题
变量来源不明确,不利于阅读
多个mixin可能会造成命名冲突
mixin和组件可能会出现多对多的关系,复杂度较高
1
2
3
4
5
6
7
8
9

import Mixin from ‘./mixin’
export default {
mixins: [Mixin],
data () {
return {}
}
}

vuex 使用
基本概念、基本使用、API
state的数据结构设计
vuex基本概念
state
gettters
action
mutation
用于vue组件
dispatch
commit
mapstate
mapGetters
mapActions
mapMutations
vue-router
路由模式:
hash
window.onhashchange
会出发网页跳转,
可前进后退,
不会提交到server端,强制刷新也不会
可刷新
H5 history
history.pushState
window.onpopstate
不可刷新(需要后端支持)
路由配置:
动态路由 {path: ‘/user/:id?’, component: User}
懒加载 {path: ‘/user/:id?’, component: () => import(‘./user’)}
Vue原理

查看更多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值