结束
一次完整的面试流程就是这样啦,小编综合了腾讯的面试题做了一份前端面试题PDF文档,里面有面试题的详细解析,分享给小伙伴们,有没有需要的小伙伴们都去领取!
开源分享:docs.qq.com/doc/DSmRnRG… // 2. 通过实例对象的 mount 方法进行挂载
app.mount('#app')
对于 setup 函数来说,它接收两个参数,分别为:
-
props
-
context
props
通过 prop 传递过来的所有数据,我们都可以在这里进行接收。并且获取到的数据将保持响应性。
我们看下面的代码:
父组件:
// 模板
// 配置对象
子组件:
const componentB = {
props: {
title: {
type: String,
required: true
}
},
setup(props) {
console.log(props); // Proxy {title: "父组件传递过来的 title"}
console.log(props.title); // "父组件传递过来的 title"
},
template: `
`
}
context
context 是一个 JavaScript 对象,这个对象暴露了三个组件的属性,我们可以通过 解构 的方式来分别获取这三个属性
// setup(props, context) {
setup(props, { attrs, slots, emit }) {
// Attribute (非响应式对象) 非 props 数据
console.log(attrs)
// 插槽 (非响应式对象)
console.log(slots);
// 触发事件 (方法) === this.$emit
console.log(emit);
}
attrs: 它是绑定到组件中的 非 props 数据,并且是非响应式的。
slots: 是组件的插槽,同样也不是 响应式的。
emit: 是一个方法,相当于 vue2 中的 this.$emit 方法。
然后我们通过下面的代码,来看一下这三个属性的实际使用:
// 父组件
<component-b title="父组件传递过来的 title" desc="父组件传递过来的普通属性" @update="onUpdate">
普通的匿名插槽
// 子组件
const componentB = {
props: {
title: {
type: String,
required: true
}
},
setup(props, { attrs, slots, emit }) {
// Attribute (非响应式对象)
console.log(attrs) // Proxy {desc: "父组件传递过来的普通属性", __vInternal: 1, onUpdate: ƒ}
// 插槽 (非响应式对象)
console.log(slots.default()); // [{__v_isVNode: true, __v_skip: true, type: "h1", …}]
// 触发事件 (方法)
// console.log(emit);
emit('update', '子组件更新的数据') // 发出一个事件,在父组件中监听这个事件,并进行打印
},
template: `
`
}
我们可以在 setup 函数中返回一个对象,这样我们就可以在模板中直接访问该对象中的属性和方法。
setup(props, { attrs, slots, emit }) {
return {
content: '这是 setup 中返回的数据',
onLog: () => {
console.log('调用 onLog 方法')
}
}
这里分享一份由字节前端面试官整理的「2021大厂前端面试手册」,内容囊括Html、CSS、Javascript、Vue、HTTP、浏览器面试题、数据结构与算法。全部整理在下方文档中,共计111道
HTML
-
HTML5有哪些新特性?
-
Doctype作⽤? 严格模式与混杂模式如何区分?它们有何意义?
-
如何实现浏览器内多个标签页之间的通信?
-
⾏内元素有哪些?块级元素有哪些? 空(void)元素有那些?⾏内元 素和块级元素有什么区别?
-
简述⼀下src与href的区别?
-
cookies,sessionStorage,localStorage 的区别?
-
HTML5 的离线储存的使用和原理?
-
怎样处理 移动端 1px 被 渲染成 2px 问题?
-
iframe 的优缺点?
-
Canvas 和 SVG 图形的区别是什么?
JavaScript
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
-
问:0.1 + 0.2 === 0.3 嘛?为什么?
-
JS 数据类型
-
写代码:实现函数能够深度克隆基本类型
-
事件流
-
事件是如何实现的?
-
new 一个函数发生了什么
-
什么是作用域?
-
JS 隐式转换,显示转换
-
了解 this 嘛,bind,call,apply 具体指什么
-
手写 bind、apply、call
-
setTimeout(fn, 0)多久才执行,Event Loop
-
手写题:Promise 原理
-
说一下原型链和原型链的继承吧
-
数组能够调用的函数有那些?
-
PWA使用过吗?serviceWorker的使用原理是啥?
-
ES6 之前使用 prototype 实现继承
-
箭头函数和普通函数有啥区别?箭头函数能当构造函数吗?
-
事件循环机制 (Event Loop)