当前位置: 首页 > news >正文

面试学习准备

根据面试题web前端面试 - 面试官系列 里面的题目学习巩固。

1.vue2

组件通信

EventBus:
讲解

全局事件总线,核心思想是通过发布-订阅模式来实现组件之间的通信

在 Vue 2 中,可以直接使用 Vue 实例作为 EventBus。

使用方法:在mian.js中直接挂载到vue原型上。

const bus = new Vue();

Vue.prototype.$bus = bus

然后组件通过 this.$bus来访问

用$emit发送事件
this.$bus.$emit('customEvent', { message: 'Hello from Component A' });
用$on接收事件
this.$bus.$on('customEvent', (payload) => {
  console.log('Received:', payload.message);
});

项目中的真实用法:

项目顶部导航栏 点击模块高亮效果

1.//比如:在有导航栏的页面点击导航栏的首页 (页面路径:src\pages\home\index.vue)
methods:{
this.$router.push({name: "newIndex"
});
}2.//跳转到index首页页面 (页面路径:src\pages\home\newIndex.vue)
beforeMount() {this.$root.Bus.$emit("changeTab", 'first');
},
在这个页面中用$bus.$emit传递数据给导航栏页面3.还是导航栏页面接收参数(页面路径:src\pages\home\index.vue)
mounted(){
this.$root.Bus.$on("changeTab", e => {this.activeName = e; //this.activeName 控制导航栏文字是否高亮localStorage.setItem('activeName', e) //此时e就是上面传递的'first'
});
}

 NextTick

Vue 中 DOM 更新是异步的,数据更新后页面的 DOM 可能还没完成更新,因此在需要操作最新 DOM 时,可以使用 this.$nextTick 确保数据变化引起的 DOM 更新完成后再执行代码。

this.$nextTick 的使用场景主要是需要操作更新后的 DOM,而不仅仅是简单的页面渲染。简单的数据绑定渲染,Vue 会自动处理好,根本不需要用到 nextTick。只有当数据变化后,你有一些额外的逻辑需要依赖最新的 DOM 状态,才需要使用它。

所以,nextTick 本质上是为了解决数据变化和 DOM 更新之间的异步关系,确保操作发生在 DOM 更新完成之后,而不是专门为页面渲染而存在。

插槽slot

插槽重点 :父组件向子组件传递内容

分类        :

1.默认插槽  <slot></slot> 用于插入父组件的内容

2.具名插槽 (多个插槽) 通过 name 属性指定内容插入的位置,父组件用 #插槽名 提供内容。

3.作用域插槽 :(父组件还能拿到子组件提供的数据)子组件通过插槽把数据传递给父组件,父组件用 v-slot 接收数据。

 father.vue
<template><div><!-- 默认插槽 --><child><div>我是父组件给你传递的数据:父亲</div></child><!-- 具名插槽 --><child><template #name>我是具名插槽name</template><template #age>我是具名插槽age</template></child><!-- 作用域插槽  父组件用v-solt 接收子组件传递过来的数据 --><child v-solt="{info}"><div>父组件展示子组件的数据:{{ info }}</div></child></div>
</template><script>
import child from "./child";
<template><div><!-- 默认插槽 --><slot></slot><!-- 具名插槽 --><div><span>姓名:</span><slot name="name"></slot></div><div><span>年龄:</span><slot name="age"></slot></div><!-- 作用域插槽  子组件传递给父组件的数据 --><slot :info="info"></slot></div>
</template><script>
export default {name:'', components: {},data () {return {info:'我是子组件传递给父组件的数据 作用域插槽'}

axios封装

安装 和 导入

npm install axios --s 

在main.js中

import axios form ‘axios’

 发送请求
axios({        url:'xxx',    // 设置请求的地址method:"GET", // 设置请求方法params:{      // get请求使用params进行参数凭借,如果是post请求用datatype: '',page: 1}
}).then(res => {  // res为后端返回的数据console.log(res);   
})
二次封装 

原因:设置超时时间、设置请求头、错误处理等等操作

2.javascript中es6

为了在面试中能讲出多条,减少遗漏,下面只列举不解释。

1. 块级作用域(let和const)

2. 箭头函数

3. 解构赋值

4. 模板字符串

5. 类(Class)

6. Promise

7. 模块化导入和导出


http://www.mrgr.cn/news/78180.html

相关文章:

  • Java【多线程】(1)进程与线程
  • 计算机网络的功能
  • 重学SpringBoot3-异步编程完全指南
  • Hive的基础函数
  • imx-6ULL 根文件系统的构建
  • C语言数据结构——详细讲解 双链表
  • 学习与理解LabVIEW中多列列表框项名和项首字符串属性
  • 旋转磁体产生的场 - 实验视频资源下载
  • 东方微电嵌入式面试题及参考答案
  • Jir 关联 agit
  • 上下文信息、全局信息、局部信息
  • PostgreSQL外键全解析:从概念到实践的进阶指南
  • 软件团队的共担责任
  • 计算机毕业设计Hadoop+Spark音乐推荐系统 音乐预测系统 音乐可视化大屏 音乐爬虫 HDFS hive数据仓库 机器学习 深度学习 大数据毕业设计
  • vue项目的创建
  • 【Elasticsearch】开启大数据分析的探索与预处理之旅
  • 文件导入-使用java反射修改日期数据
  • SAR ADC系列15:基于Vcm-Base的开关切换策略
  • K8s的水平自动扩容和缩容HPA
  • C++ 优先算法 —— 无重复字符的最长子串(滑动窗口)
  • QT QRadioButton控件 全面详解
  • 数据结构 (12)串的存储实现
  • 大语言模型(LLM)不平衡的内存使用问题;训练过程中 Transformer层1和Transformer层2的反向传播计算量差异
  • JVM详解:垃圾回收机制
  • Android OTA 更新面试题及参考答案
  • 深入解析 ArrayList 源码:从动态扩容到高效存取的秘密