中级程序员——vue3+js+git面试题

在这里插入图片描述
🙂博主:小猫娃来啦
🙂文章核心:vue3+js+git面试题

文章目录

  • vue3最大缺点和优点?
  • vue3组合式里面,如何去调用子组件里面的方法?
  • watch和watcheffect有什么区别?
  • 计算属性和watch的区别是什么?
  • 计算属性里面的缓存是可以关闭的吗,怎么关闭?
  • ref和reactive有什么区别?
  • qref有了解过吗?
  • 深拷贝的浅拷贝的区别?
  • 常用深拷贝的方法?
  • json.stringify做深拷贝,有什么缺点?
  • 怎么理解声明和提升?
  • 预解析的时候变量提升到最顶端,怎么理解?
  • 面向对象怎么理解?
  • 原型和原型链的理解?
  • 原型链最顶端是什么,最底端是什么?
  • object和function原型链的关系是什么?
  • promise和async/await有什么区别?
  • async/await如何获取到promise的catch?
  • 常用的数组遍历api有哪些?
  • filter和some的区别是什么?
  • 如果现在有一个数组,让你对数组去重,你怎么处理?
  • 比较两个数组的相同和不同,如何处理?
  • 如果两个点,x1y1,x2y2,求两个点的距离,怎么处理,怎么计算?
  • 代码审核的时候,哪些代码会处理一下?
  • 有了解过代码健壮性吗?
  • git用的工具还是命令?
  • 切换分支用哪个命令?
  • nexttick的替代方案?
  • var和let声明的变量,数据存储在哪里?
  • 迭代器 map,foreach,for of。用他们处理数据时,应该怎么选择,使用场景分别是什么?
  • map可以去重吗?
  • map 和foreach特征还是比较明显的,有哪些特征?
  • map,foreach,for of哪个性能会好一些?
  • es6里的class,它是怎么去继承的?
  • constructor要继承父类的什么属性吗?通过什么继承的?怎么实现的?
  • 表格里有很多数据,不同的单元格要异步请求根据状态渲染值,会造成高并发问题,作为前端应该如何去优化高并发问题产生的卡顿?
  • 如何通过缓存来优化高并发问题?如果是缓存,怎么去缓存,缓存在哪里?
  • keep-alive是如何缓存的?
  • 数据变化了,什么时机才能监听到数据变化,怎么监听?
  • vite实现打包的时候 ,打的包能否动态运行时修改配置?
  • 一套代码,如何部署到多个地方?
  • 你所知道的循环比对,有哪些方法?
  • some是怎么用的?
  • every怎么用?
  • reduce有几个参数?
  • 怎么转换后端要的参数的方式?
  • 如何同时把两条数据的id传到后端,也就是id=2和id=19如何传到后端?是通过数组的形式吗?
  • 如何把表格数据导出excel?
  • 不同的文件通过浏览器识别,有的是展示,有的是下载,为什么表现不一样,浏览器是怎么判断的?靠的是什么属性?
  • 导出Excel时,如何设置这个属性?
  • 单一登录,大概说一下?
  • 事件委托是怎么回事,能说的更细更深点吗?
  • 不借助第三个变量,交换两个变量的值,怎么做?什么是位运算?
  • 数组或对象的遍历有什么方法? 区别是什么?
  • 为什么for循环性能是最好的?什么特定场景下,性能才最好?
  • 有没有用过mixin?代码里面的里一些公共方法,单独封装的组件,是怎么做组件的封装的或者工具的封装?
  • 组件是通过什么方式注册到全局的?怎么在全局不需要import导入就可以使用呢?
  • 高频用的组件,如何在初始化的时候注册进来?这个组件可能在每个页面都要用,应该如何去做?
  • 项目里面有没有初始化加载数据的?
  • keep-alive用的时候怎么用?都缓存些什么数据?
  • vue里的storage用过吗?存的时候用set,取得时候不能用get,为什么?
  • 移动端的适配规则?

vue3最大缺点和优点?

vue3组合式里面,如何去调用子组件里面的方法?

watch和watcheffect有什么区别?

计算属性和watch的区别是什么?

计算属性里面的缓存是可以关闭的吗,怎么关闭?

ref和reactive有什么区别?

qref有了解过吗?

深拷贝的浅拷贝的区别?

常用深拷贝的方法?

json.stringify做深拷贝,有什么缺点?

怎么理解声明和提升?

预解析的时候变量提升到最顶端,怎么理解?

面向对象怎么理解?

原型和原型链的理解?

原型链最顶端是什么,最底端是什么?

object和function原型链的关系是什么?

promise和async/await有什么区别?

async/await如何获取到promise的catch?

常用的数组遍历api有哪些?

filter和some的区别是什么?

filter 主要用于从数组中筛选出符合条件的元素,生成一个新的数组;而 some 主要用于判断数组中是否存在满足条件的元素,返回一个布尔值。两者的主要区别在于其返回值的含义和用途。)

如果现在有一个数组,让你对数组去重,你怎么处理?

比较两个数组的相同和不同,如何处理?

如果两个点,x1y1,x2y2,求两个点的距离,怎么处理,怎么计算?

代码审核的时候,哪些代码会处理一下?

有了解过代码健壮性吗?

git用的工具还是命令?

切换分支用哪个命令?

nexttick的替代方案?

var和let声明的变量,数据存储在哪里?

迭代器 map,foreach,for of。用他们处理数据时,应该怎么选择,使用场景分别是什么?

map可以去重吗?

map 和foreach特征还是比较明显的,有哪些特征?

map,foreach,for of哪个性能会好一些?

es6里的class,它是怎么去继承的?

constructor要继承父类的什么属性吗?通过什么继承的?怎么实现的?

表格里有很多数据,不同的单元格要异步请求根据状态渲染值,会造成高并发问题,作为前端应该如何去优化高并发问题产生的卡顿?

如何通过缓存来优化高并发问题?如果是缓存,怎么去缓存,缓存在哪里?

keep-alive是如何缓存的?

数据变化了,什么时机才能监听到数据变化,怎么监听?

vite实现打包的时候 ,打的包能否动态运行时修改配置?

一套代码,如何部署到多个地方?

你所知道的循环比对,有哪些方法?

some是怎么用的?

every怎么用?

reduce有几个参数?

怎么转换后端要的参数的方式?

如何同时把两条数据的id传到后端,也就是id=2和id=19如何传到后端?是通过数组的形式吗?

如何把表格数据导出excel?

不同的文件通过浏览器识别,有的是展示,有的是下载,为什么表现不一样,浏览器是怎么判断的?靠的是什么属性?

导出Excel时,如何设置这个属性?

单一登录,大概说一下?

事件委托是怎么回事,能说的更细更深点吗?

不借助第三个变量,交换两个变量的值,怎么做?什么是位运算?

数组或对象的遍历有什么方法? 区别是什么?

为什么for循环性能是最好的?什么特定场景下,性能才最好?

有没有用过mixin?代码里面的里一些公共方法,单独封装的组件,是怎么做组件的封装的或者工具的封装?

组件是通过什么方式注册到全局的?怎么在全局不需要import导入就可以使用呢?

高频用的组件,如何在初始化的时候注册进来?这个组件可能在每个页面都要用,应该如何去做?

项目里面有没有初始化加载数据的?

keep-alive用的时候怎么用?都缓存些什么数据?

vue里的storage用过吗?存的时候用set,取得时候不能用get,为什么?

移动端的适配规则?


GPT回答:

  1. Vue3 最大的优点是性能优化和组合式 API。Vue3 在性能方面做了很多改进,比如使用 Proxy 对象进行响应式数据的追踪,减少了不必要的更新操作。另外,Vue3 引入了组合式 API,使得代码更加模块化和可复用。

    最大的缺点可能是学习成本相对较高,因为 Vue3 在很多方面和 Vue2 有较大的变化,需要重新学习和适应新的 API 和语法。

  2. 在 Vue3 组合式 API 中,可以通过 refreactive 创建子组件的方法并导出,然后在父组件中引入子组件并调用。

  3. watchwatchEffect 都是用来监听数据变化的。区别在于:

    • watch 需要显式地指定要监听的数据,可以精确控制监听的范围,并提供了更多的选项。
    • watchEffect 则会自动追踪依赖的数据,并在数据变化时执行相应的回调函数。它更适合处理副作用,比如异步请求或者触发其他的操作。
  4. 计算属性是基于依赖的数据进行计算,并缓存计算结果。当依赖的数据变化时,计算属性会重新计算。而 watch 则是在特定的数据变化时执行回调函数,并可以处理更复杂的逻辑。

  5. 计算属性的缓存是默认开启的,不过你可以通过将计算属性声明为一个普通的函数来关闭缓存功能。

  6. ref 是用来创建一个响应式的数据对象,它返回一个包含响应式数据的引用。而 reactive 则是用来创建一个响应式的数据对象,它返回一个包含多个属性的响应式对象。

  7. qref 不是 Vue3 提供的 API,可能是你的笔误。

  8. 浅拷贝和深拷贝的区别在于拷贝的程度。浅拷贝只复制对象的引用,而不复制对象本身。深拷贝则是创建一个新对象,并递归地复制原始对象及其所有子对象。

  9. 常用的深拷贝方法有:

    • 使用 JSON.stringify 和 JSON.parse:这种方法可以将对象转换成字符串,再将字符串转换回对象,实现深拷贝。但是它无法拷贝函数和特殊对象。
    • 使用递归方式手动复制对象:通过遍历对象的属性,递归地复制每个属性,包括嵌套的对象和数组。
  10. 使用 JSON.stringify 进行深拷贝的缺点是,它无法拷贝函数和特殊对象(比如正则表达式、日期对象等),并且遇到循环引用时会报错。

  11. 在 JavaScript 中,声明提升是指变量和函数的声明会在代码执行之前被提升到作用域的顶部。这意味着你可以在声明之前使用变量和函数,而不会报错。

  12. 在预解析阶段,变量的声明会被提升到作用域的顶部,但是初始化的赋值不会被提升。所以在声明之前使用变量时,它的值为 undefined

  13. 面向对象是一种编程范式,它将程序看作是一组对象的集合,每个对象都可以接收消息、处理数据,并与其他对象进行交互。面向对象编程的核心概念包括封装、继承和多态。

  14. 原型是 JavaScript 对象的一个内置属性,它指向另一个对象,用于实现对象之间的继承关系。原型链是多个对象通过原型链接起来的一种结构,使得对象可以共享属性和方法。

  15. 原型链的最顶端是 Object.prototype,最底端是 null。所有的对象都直接或间接地继承自 Object.prototype

  16. object 是所有对象的基类,而 functionobject 的一个子类。通过 __proto__ 属性,函数对象可以访问到 Function.prototype,而 Function.prototype 又继承自 Object.prototype

  17. Promise 是一种处理异步操作的方式,它可以更好地组织和管理异步代码。而 async/await 是基于 Promise 的语法糖,使得异步代码的编写更加简洁明了。

  18. 使用 async/await 获取 Promise 的 catch 可以通过 try/catch 块来实现。在 async 函数内部,可以使用 try/catch 来捕获 Promise 的错误。

  19. 常用的数组遍历 API 有:

    • forEach:遍历数组的每个元素,并对每个元素执行回调函数。
    • map:遍历数组的每个元素,并根据回调函数的返回值创建一个新数组。
    • filter:遍历数组的每个元素,并根据回调函数的返回值过滤出符合条件的元素。
    • some:遍历数组的每个元素,并根据回调函数的返回值判断是否存在符合条件的元素。
  20. filtersome 的区别是:

    • filter 返回一个包含符合条件的元素的新数组。
    • some 返回一个布尔值,表示数组中是否存在符合条件的元素。
  21. 对数组去重可以使用 Set 数据结构或者利用对象的属性唯一性进行去重。

  22. 比较两个数组的相同和不同,可以使用循环遍历的方式,逐个比较数组中的元素,并根据需要进行处理。

  23. 两个点的坐标为 (x1, y1) 和 (x2, y2),可以使用勾股定理计算两点之间的距离:distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

  24. 在代码审核过程中,需要重点关注以下几个方面:

    • 可读性:代码是否易于理解和维护。
    • 安全性:代码是否存在潜在的安全漏洞。
    • 性能:代码是否高效,是否存在性能瓶颈。
    • 规范性:代码是否符合编码规范和最佳实践。
  25. 代码的健壮性指的是代码的稳定性和可靠性。健壮的代码应该能够处理各种异常情况,并且在出错时能够正确地进行错误处理。

  26. Git 可以通过命令行工具或者图形化界面来使用,具体使用哪种方式取决于个人的习惯和需求。切换分支可以使用 git checkout 命令。

  27. 在 Vue3 中,nextTick 的替代方案是使用 queueMicrotask 函数。它可以在下一个微任务时执行回调函数,实现类似的效果。

  28. var 声明的变量存储在函数作用域或全局作用域中。而 let 声明的变量存储在块级作用域中。

  29. 迭代器是一种对象,它提供了一种统一的方式来遍历容器中的元素。mapforEachfor...of 都是用来遍历数据的方法,选择使用哪种方法取决于具体的需求和使用场景。

  • map:将原数组中的每个元素映射为一个新的元素,并返回一个新的数组。
  • forEach:对原数组中的每个元素执行回调函数,没有返回值。
  • for...of:以迭代的方式遍历数组或类数组对象,可以使用 breakcontinue 控制循环的流程。
  1. map 方法不能直接去重,它只是根据回调函数的返回值创建一个新的数组。如果需要去重,可以借助 Set 数据结构或者其他方法来实现。

  2. mapforEachfor...of 三者之间的特征有:

  • map:返回一个新数组,长度与原数组相等。
  • forEach:没有返回值,只是对原数组进行遍历操作。
  • for...of:以迭代的方式遍历数组或类数组对象。
  1. for...of 的性能相对较好,因为它是基于迭代器的方式进行遍历,不会创建新的数组或执行额外的操作。

  2. 在 ES6 中,使用 class 关键字可以定义一个类,并通过 extends 关键字实现继承。

  3. 子类的构造函数需要通过 super 关键字调用父类的构造函数,并且在子类的构造函数中使用 super 之前不能使用 this 关键字。

  4. 如果大量的异步请求导致高并发问题和卡顿,可以采取以下优化措施:

  • 使用节流或者防抖来限制请求的频率。
  • 合并多个请求,减少请求次数。
  • 使用分页加载或者懒加载,减少一次性获取大量数据。
  • 在前端实现局部缓存,减少不必要的重复请求。
  1. 通过缓存来优化高并发问题可以将请求结果缓存在内存或者本地存储中,避免重复的网络请求。缓存可以存储在客户端的内存、浏览器的本地存储(如 localStorage)或者服务器端的缓存中,具体需要根据实际场景来选择合适的缓存策略。

  2. keep-alive 是 Vue 中的一个组件,用于缓存动态组件或者路由组件,以便在组件切换时保留组件的状态或避免重复渲染。它可以通过设置 includeexclude 属性来控制哪些组件需要被缓存。

当然,我来继续回答你的问题:

  1. 要监听数据变化,可以使用 Vue3 提供的响应式 API,比如 watchwatchEffect 或者计算属性。这些 API 可以帮助你实时地监听数据的变化,并在数据变化时执行相应的操作。

  2. 在 Vue3 中,template 标签是用来定义模板的,它可以包含 Vue 模板语法,用于生成最终的 DOM 结构。而 render 函数则是一种用 JavaScript 来描述 DOM 结构的方式,可以更加灵活地控制 DOM 的生成过程。

  3. 在 Vue3 中,provideinject 是用来实现跨层级组件之间数据传递的。通过 provide 提供数据,然后在子组件中使用 inject 来注入相应的数据。

  4. 在 Vue3 中,setup 函数是用来替代 Vue2 中的 datamethods 等选项的。setup 函数接收两个参数,一个是 props,用于接收父组件传递的数据;另一个是 context,用于访问组件实例的属性和方法。

  5. TypeScript 是 JavaScript 的一个超集,它添加了静态类型检查的功能,并且支持 ECMAScript 6 及以上的语法。使用 TypeScript 可以帮助你在开发过程中发现潜在的错误,并提高代码的可维护性和可读性。

  6. 在 Vue3 中使用 TypeScript 可以通过为 .vue 文件添加 <script lang="ts"> 标签,并在 setup 函数中显式声明 props 的类型。

  7. 在 Vue3 中,可以通过 v-model 指令来实现双向数据绑定。v-model 通常用于表单元素,比如输入框、复选框等,可以方便地将输入的值与数据进行双向绑定。

  8. Vuex 是 Vue.js 的状态管理库,用于集中管理应用的所有组件的状态。可以通过 Vuex 实现数据在各个组件之间的共享和管理,并且提供了一套规范的状态管理方案。

  9. 在 Vuex 中,可以通过 state 属性来定义应用的状态,通过 mutations 属性来定义修改状态的方法,通过 actions 属性来定义异步操作,以及通过 getters 属性来定义派生状态。

  10. 在 Vue3 中,如果需要使用 Vuex,可以通过 createStore 函数来创建一个 Vuex 的 store,并在根组件中使用 provide 来提供该 store,然后在子组件中使用 inject 来注入该 store。

在这里插入图片描述


关注我,后续会持续更新


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/156500.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3+ts扩展全局属性

在使用vue3 ts配置全局变量&#xff0c;需要添加一下扩展 文档 https://cn.vuejs.org/guide/reusability/plugins.html

OSPF开放最短路径优先(Open Shortest Path First)协议

OSPF开放最短路径优先(Open Shortest Path First)协议 为克服RIP的缺点(限制网络规模&#xff0c;坏消息传得慢)在1989年开发出来的原理很简单&#xff0c;但实现很复杂使用了Dijkstra提出的最短路径算法SPF(Shortest Path First)采用分布式的链路状态协议(link state protoco…

新的 Reptar CPU 缺陷影响英特尔台式机和服务器系统

英特尔修复了其现代台式机、服务器、移动和嵌入式 CPU 中的一个高严重性 CPU 漏洞&#xff0c;包括最新的 Alder Lake、Raptor Lake 和 Sapphire Rapids 微架构。 攻击者可以利用该缺陷&#xff08;追踪为CVE-2023-23583并被描述为“冗余前缀问题”&#xff09;来升级权限、获…

开源网安解决方案荣获四川数实融合创新实践优秀案例

​11月16日&#xff0c;2023天府数字经济峰会在成都圆满举行。本次峰会由四川省发展和改革委员会、中共四川省委网络安全和信息化委员会办公室、四川省经济和信息化厅等部门联合指导&#xff0c;聚焦数字经济与实体经济深度融合、数字赋能经济社会转型发展等话题展开交流研讨。…

这次轮到微软炸场了;5000+AI工具调研报告 (500万字);狂打一星开喷AI聊天机器人;CMU LLM课程;AI创业的方向与时机 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f251; Microsoft Ignite 2023 技术大会&#xff1a;微软的年度炸场时刻&#xff0c;而且连炸四天 https://ignite.microsoft.com OpenAI 开发…

WebGoat通关攻略之 SQL Injection (intro)

SQL Injection (intro) 1. What is SQL? 本题练习SQL查询语句&#xff0c;就是写一句SQL获取叫Bob Franco所在的department SELECT department FROM employees WHERE first_name Bob AND last_name Franco成功通关&#xff01; 2. Data Manipulation Language (DML) 本题…

畅捷通+数环通iPaaS,实现无代码集成上千款应用

01 关于畅捷通 畅捷通信息化服务专家,为用户提供在线财务软件,云进销存管理软件,移动办公软件,帮助小微企业人、财、货、客的管理,全面服务小微企业并提供社交化、个性化、服务化、小量化的生意管理支持。 企业除了畅捷通&#xff0c;还有大大小小其他的系统&#xff0c;面临着…

安全函数使用及源码

几个常规内存函数经常会使用的怀疑人生&#xff0c;现在整理一下 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 以下对内存函数进行整理。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、资源 MSDN网址 …

ESP32踩坑记2-组件链接的未定义

发现问题 开发ESP32的时候&#xff0c;当我使用多个组件的时候&#xff0c;编译的时候出现两个问题 Task/Task_Gui.c:13: undefined reference to lvgl_driver_init’ However, the component manager is not enabled 解决问题1 但是我去找这个文件的时候&#xff0c;发现…

Draft-P802.11be-D3.2协议学习__$36-EHT-PHY__$36.5-Parameters-for-EHT-MCSs

Draft-P802.11be-D3.2协议学习__$36-EHT-PHY__$36.5-Parameters-for-EHT-MCSs 36.3.5 EHT DUP transmission36.3.8 EHT modulation and coding schemes (EHT-MCSs)36.3.9 EHT-SIG modulation and coding schemes (EHT-SIG-MCSs)36.5 Parameters for EHT-MCSs36.5.1 EHT-MCSs fo…

Apache Doris (五十四): Doris Join类型 - Bucket Shuffle Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

20套面向对象程序设计选题Java Swing(含教程) (三) 持续更新 建议收藏

20套面向对象程序设计选题Java Swing(含教程) (一) 20套面向对象程序设计选题Java Swing(含教程) (二) 9.交通罚单管理系统 点击查看项目演示及教程视频 源码下载 【功能描述】 ​系统有管理员、交警、驾驶员三个角色&#xff1b; 用户登录后可修改密码​&#xff1b; 管…

【Vue全家桶 合集 关注收藏】

【Vue全家桶】全面了解学习并实践总结Vue必备知识点 写在前面 &#x1f917; 这里是SuperYi Vue全家桶合集站&#xff01; &#x1f33b; 人海茫茫&#xff0c;感谢这一秒你看到这里。希望我的文章对你的有所帮助&#xff01; &#x1f31f; 愿你在未来的日子&#xff0c;保持…

洗地机选购攻略,洗地机哪个品牌好?一篇教会你挑到好用的洗地机

随着国内生活水平的提高&#xff0c;智能清洁产品的呼声也越来越高&#xff0c;尤其是洗地机&#xff0c;可以说是国内各个品牌的洗地机铺天盖地而来&#xff0c;那么如何挑选洗地机成了很多新手的困惑&#xff0c;别着急&#xff0c;笔者今天就给大家讲讲洗地机! 一、购买洗地…

【STM32外设系列】NRF24L01无线收发模块

&#x1f380; 文章作者&#xff1a;二土电子 &#x1f338; 关注公众号获取更多资料&#xff01; &#x1f438; 期待大家一起学习交流&#xff01; 文章目录 一、NRF24L01简介1.1 什么是NRF24L011.2 NRF24L01引脚介绍1.3 NRF24L01工作模式1.4 NRF24L01的SPI时序1.5 Enhanc…

(C语言)输入一个序列,判断是否为奇偶交叉数

#include <stdio.h> #include <string.h> int main() {char str[50];gets(str);int len,tmp 1;len strlen(str); //获取字符串长度 for (int i 0;i < len-1 ;i ){if((str[i] % 2 0 ) && (str[i1] % 2 ! 0)) //判断先偶数后奇数序列 tmp ;else if((s…

学习笔记5——对象、直接内存、执行引擎,string

学习笔记系列开头惯例发布一些寻亲消息 链接&#xff1a;https://baobeihuijia.com/bbhj/contents/3/192486.html 创建对象的步骤 对象对应的类是否被加载&#xff0c;链接&#xff08;链接到真实的内存地址&#xff09;&#xff0c;初始化&#xff08;类初始化&#xff09;…

三成青少年“不能忍受没有手机”?数字时代家庭教育新责任考验家长

孩子放学回家第一件事就是刷手机&#xff0c;不仅耽误睡觉而且严重影响学习&#xff0c;没收手机后孩子哭闹不止&#xff0c;更无心学习&#xff0c;这样的熊孩子你遇到过没?近日&#xff0c;福建一家长在社区群里晒出自己的烦恼&#xff0c;结果骤然成为热帖&#xff0c;不少…

PON网络应用场景

PON网络主要应用在两个场景&#xff1a; 1.电信运营商FTTx FTTx解决方案覆盖FTTH、FTTB、FTTC、FTTO等建设场景&#xff0c;还能提供基站专线接入在内的高带宽、高可靠、高安全的全业务接入。 提供主要业务包括&#xff1a;50MHDTV业务、企业接入业务、Open Access接入、基站专…

uniapp form表单提交事件手动调用

背景&#xff1a; UI把提交的按钮弄成了图片&#xff0c;之前的button不能用了。 <button form-type"submit">搜索</button> 实现&#xff1a; html&#xff1a; 通过 this.$refs.fd 获取到form的vue对象。手动调用里面的_onSubmit()方法。 methods:…