网站备案变更,三星网上商城,网络平台建设授权书,wordpress+团购看看面试题#xff0c;只是为了查漏补缺#xff0c;看看自己那些方面还不懂。切记不要以为背了面试题#xff0c;就万事大吉了#xff0c;最好是理解背后的原理#xff0c;这样面试的时候才能侃侃而谈。不然#xff0c;稍微有水平的面试官一看就能看出#xff0c;是否有…看看面试题只是为了查漏补缺看看自己那些方面还不懂。切记不要以为背了面试题就万事大吉了最好是理解背后的原理这样面试的时候才能侃侃而谈。不然稍微有水平的面试官一看就能看出是否有真才实学还是刚好背中了这道面试题。都是一些基础的vue面试题大神不用浪费时间往下看一、对于MVVM的理解MVVM 是 Model-View-ViewModel 的缩写。Model代表数据模型也可以在Model中定义数据修改和操作的业务逻辑。View代表UI 组件它负责将数据模型转化成UI 展现出来。ViewModel监听模型数据的改变和控制视图行为、处理用户交互简单理解就是一个同步View 和 Model的对象连接Model和View。在MVVM架构下View 和 Model 之间并没有直接的联系而是通过ViewModel进行交互Model 和 ViewModel 之间的交互是双向的 因此View 数据的变化会同步到Model中而Model 数据的变化也会立即反应到View 上。ViewModel通过双向数据绑定把 View 层和 Model 层连接了起来而View 和 Model 之间的同步工作完全是自动的无需人为干涉因此开发者只需关注业务逻辑不需要手动操作DOM, 不需要关注数据状态的同步问题复杂的数据状态维护完全由 MVVM 来统一管理。二、Vue的生命周期beforeCreate创建前 在数据观测和初始化事件还未开始created创建后 完成数据观测属性和方法的运算初始化事件e l 属性还没有显示出来 ∗ ∗ b e f o r e M o u n t ∗ ∗ 载入前在挂载开始之前被调用相关的 r e n d e r 函数首次被调用。实例已完成以下的配置编译模板把 d a t a 里面的数据和模板生成 h t m l 。注意此时还没有挂载 h t m l 到页面上。 ∗ ∗ m o u n t e d ∗ ∗ 载入后在 e l 被新创建的 v m . el属性还没有显示出来 **beforeMount**载入前 在挂载开始之前被调用相关的render函数首次被调用。实例已完成以下的配置编译模板把data里面的数据和模板生成html。注意此时还没有挂载html到页面上。 **mounted**载入后 在el 被新创建的 vm.el属性还没有显示出来∗∗beforeMount∗∗载入前在挂载开始之前被调用相关的render函数首次被调用。实例已完成以下的配置编译模板把data里面的数据和模板生成html。注意此时还没有挂载html到页面上。∗∗mounted∗∗载入后在el被新创建的vm.el 替换并挂载到实例上去之后调用。实例已完成以下的配置用上面编译好的html内容替换el属性指向的DOM对象。完成模板中的html渲染到html页面中。此过程中进行ajax交互。beforeUpdate更新前 在数据更新之前调用发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子中进一步地更改状态不会触发附加的重渲染过程。updated更新后 在由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用。调用时组件DOM已经更新所以可以执行依赖于DOM的操作。然而在大多数情况下应该避免在此期间更改状态因为这可能会导致更新无限循环。该钩子在服务器端渲染期间不被调用。beforeDestroy销毁前 在实例销毁之前调用。实例仍然完全可用。destroyed销毁后 在实例销毁之后调用。调用后所有的事件监听器会被移除所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。1.什么是vue生命周期答 Vue 实例从创建到销毁的过程就是生命周期。从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、销毁等一系列过程称之为 Vue 的生命周期。2.vue生命周期的作用是什么答它的生命周期中有多个事件钩子让我们在控制整个Vue实例的过程时更容易形成好的逻辑。3.vue生命周期总共有几个阶段答它可以总共分为8个阶段创建前/后, 载入前/后,更新前/后,销毁前/销毁后。4.第一次页面加载会触发哪几个钩子答会触发 下面这几个beforeCreate, created, beforeMount, mounted 。5.DOM 渲染在 哪个周期中就已经完成答DOM 渲染在 mounted 中就已经完成了。三、 Vue实现数据双向绑定的原理Object.definePropertyvue实现数据双向绑定主要是采用数据劫持结合发布者-订阅者模式的方式通过**Object.defineProperty**来劫持各个属性的settergetter在数据变动时发布消息给订阅者触发相应监听回调。当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时Vue 将遍历它的属性用 Object.defineProperty 将它们转为 getter/setter。用户看不到 getter/setter但是在内部它们让 Vue 追踪依赖在属性被访问和修改时通知变化。vue的数据双向绑定 将MVVM作为数据绑定的入口整合ObserverCompile和Watcher三者通过Observer来监听自己的model的数据变化通过Compile来解析编译模板指令vue中是用来解析 {{}}最终利用watcher搭起observer和Compile之间的通信桥梁达到数据变化 —视图更新视图交互变化input—数据model变更双向绑定效果。js实现简单的双向绑定body div idapp input typetext idtxt p idshow/p /div /body script typetext/javascript var obj {} Object.defineProperty(obj, txt, { get: function () { return obj }, set: function (newValue) { document.getElementById(txt).value newValue document.getElementById(show).innerHTML newValue } }) document.addEventListener(keyup, function (e) { obj.txt e.target.value }) /script四、Vue组件间的参数传递1.父组件与子组件传值父组件传给子组件子组件通过props方法接受数据;子组件传给父组件$emit方法传递参数2.非父子组件间的数据传递兄弟组件传值eventBus就是创建一个事件中心相当于中转站可以用它来传递事件和接收事件。项目比较小时用这个比较合适。虽然也有不少人推荐直接用VUEX具体来说看需求咯。技术只是手段目的达到才是王道。五、Vue的路由实现hash模式 和 history模式**hash模式**在浏览器中符号“#”#以及#后面的字符称之为hash用window.location.hash读取特点hash虽然在URL中但不被包括在HTTP请求中用来指导浏览器动作对服务端安全无用hash不会重加载页面。hash 模式下仅 hash 符号之前的内容会被包含在请求中如 http://www.xxx.com因此对于后端来说即使没有做到对路由的全覆盖也不会返回 404 错误。**history模式**history采用HTML5的新特性且提供了两个新方法pushStatereplaceState可以对浏览器历史记录栈进行修改以及popState事件的监听到状态变更。history 模式下前端的 URL 必须和实际向后端发起请求的 URL 一致如 http://www.xxx.com/items/id。后端如果缺少对 /items/id 的路由处理将返回 404 错误。Vue-Router 官网里如此描述“不过这种模式要玩好还需要后台配置支持……所以呢你要在服务端增加一个覆盖所有情况的候选资源如果 URL 匹配不到任何静态资源则应该返回同一个 index.html 页面这个页面就是你 app 依赖的页面。”六、Vue与Angular以及React的区别版本在不断更新以下的区别有可能不是很正确。我工作中只用到vue对angular和react不怎么熟1.与AngularJS的区别相同点都支持指令内置指令和自定义指令都支持过滤器内置过滤器和自定义过滤器都支持双向数据绑定都不支持低端浏览器。不同点AngularJS的学习成本高比如增加了Dependency Injection特性而Vue.js本身提供的API都比较简单、直观在性能上AngularJS依赖对数据做脏检查所以Watcher越多越慢Vue.js使用基于依赖追踪的观察并且使用异步队列更新所有的数据都是独立触发的。2.与React的区别相同点React采用特殊的JSX语法Vue.js在组件开发中也推崇编写.vue特殊文件格式对文件内容都有一些约定两者都需要编译后使用中心思想相同一切都是组件组件实例之间可以嵌套都提供合理的钩子函数可以让开发者定制化地去处理需求都不内置列数AJAXRoute等功能到核心包而是以插件的方式加载在组件开发中都支持mixins的特性。不同点React采用的Virtual DOM会对渲染出来的结果做脏检查Vue.js在模板中提供了指令过滤器等可以非常方便快捷地操作Virtual DOM。七、vue路由的钩子函数首页可以控制导航跳转beforeEachafterEach等一般用于页面title的修改。一些需要登录才能调整页面的重定向功能。beforeEach主要有3个参数tofromnexttoroute即将进入的目标路由对象fromroute当前导航正要离开的路由nextfunction一定要调用该方法resolve这个钩子。执行效果依赖next方法的调用参数。可以控制网页的跳转。八、vuex是什么怎么使用哪种功能场景使用它只用来读取的状态集中放在store中 改变状态的方式是提交mutations这是个同步的事物 异步逻辑应该封装在action中。在main.js引入store注入。新建了一个目录store…… export 。场景有单页应用中组件之间的状态、音乐播放、登录状态、加入购物车stateVuex 使用单一状态树,即每个应用将仅仅包含一个store 实例但单一状态树和模块化并不冲突。存放的数据状态不可以直接修改里面的数据。mutationsmutations定义的方法动态修改Vuex 的 store 中的状态或数据。getters类似vue的计算属性主要用来过滤一些数据。actionactions可以理解为通过将mutations里面处里数据的方法变成可异步的处理数据的方法简单的说就是异步操作数据。view 层通过 store.dispath 来分发 action。const store new Vuex.Store({ //store实例 state: { count: 0 }, mutations: { increment (state) { state.count } }, actions: { increment (context) { context.commit(increment) } } })modules项目特别复杂的时候可以让每一个模块拥有自己的state、mutation、action、getters,使得结构非常清晰方便管理。const moduleA { state: { ... }, mutations: { ... }, actions: { ... }, getters: { ... } } const moduleB { state: { ... }, mutations: { ... }, actions: { ... } } const store new Vuex.Store({ modules: { a: moduleA, b: moduleB })九、vue-cli如何新增自定义指令1.创建局部指令var app new Vue({ el: #app, data: { }, // 创建指令(可以多个) directives: { // 指令名称 dir1: { inserted(el) { // 指令中第一个参数是当前使用指令的DOM console.log(el); console.log(arguments); // 对DOM进行操作 el.style.width 200px; el.style.height 200px; el.style.background #000; } } } })2.全局指令Vue.directive(dir2, { inserted(el) { console.log(el); } })3.指令的使用div idapp div v-dir1/div div v-dir2/div /div十、vue如何自定义一个过滤器html代码div idapp input typetext v-modelmsg / {{msg| capitalize }} /divJS代码var vmnew Vue({ el:#app, data:{ msg: }, filters: { capitalize: function (value) { if (!value) return value value.toString() return value.charAt(0).toUpperCase() value.slice(1) } } })全局定义过滤器Vue.filter(capitalize, function (value) { if (!value) return value value.toString() return value.charAt(0).toUpperCase() value.slice(1) })过滤器接收表达式的值 (msg) 作为第一个参数。capitalize 过滤器将会收到 msg的值作为第一个参数。十一、对keep-alive 的了解keep-alive是 Vue 内置的一个组件可以使被包含的组件保留状态或避免重新渲染。在vue 2.1.0 版本之后keep-alive新加入了两个属性: include(包含的组件缓存) 与 exclude(排除的组件不缓存优先级大于include) 。使用方法keep-alive includeinclude_components excludeexclude_components component !-- 该组件是否缓存取决于include和exclude属性 -- /component /keep-alive参数解释include - 字符串或正则表达式只有名称匹配的组件会被缓存exclude - 字符串或正则表达式任何名称匹配的组件都不会被缓存include 和 exclude 的属性允许组件有条件地缓存。二者都可以用“”分隔字符串、正则表达式、数组。当使用正则或者是数组时要记得使用v-bind 。使用示例!-- 逗号分隔字符串只有组件a与b被缓存。 -- keep-alive includea,b component/component /keep-alive !-- 正则表达式 (需要使用 v-bind符合匹配规则的都会被缓存) -- keep-alive :include/a|b/ component/component /keep-alive !-- Array (需要使用 v-bind被包含的都会被缓存) -- keep-alive :include[a, b] component/component /keep-alive十二、一句话就能回答的面试题1.css只在当前组件起作用答在style标签中写入scoped即可 例如2.v-if 和 v-show 区别答v-if按照条件是否渲染v-show是display的block或none3.r o u t e 和 route和route和router的区别答r o u t e 是“路由信息对象”包括 p a t h p a r a m s h a s h q u e r y f u l l P a t h m a t c h e d n a m e 等路由信息参数。而 route是“路由信息对象”包括pathparamshashqueryfullPathmatchedname等路由信息参数。而route是“路由信息对象”包括pathparamshashqueryfullPathmatchedname等路由信息参数。而router是“路由实例”对象包括了路由的跳转方法钩子函数等。4.vue.js的两个核心是什么答数据驱动、组件系统5.vue几种常用的指令答v-for 、 v-if 、v-bind、v-on、v-show、v-else6.vue常用的修饰符答.prevent: 提交事件不再重载页面.stop: 阻止单击事件冒泡.self: 当事件发生在该元素本身而不是子元素的时候会触发.capture: 事件侦听事件发生的时候会调用7.v-on 可以绑定多个方法吗答可以8.vue中 key 值的作用答当 Vue.js 用 v-for 正在更新已渲染过的元素列表时它默认用“就地复用”策略。如果数据项的顺序被改变Vue 将不会移动 DOM 元素来匹配数据项的顺序 而是简单复用此处每个元素并且确保它在特定索引下显示已被渲染过的每个元素。key的作用主要是为了高效的更新虚拟DOM。9.什么是vue的计算属性答在模板中放入太多的逻辑会让模板过重且难以维护在需要对数据进行复杂处理且可能多次使用的情况下尽量采取计算属性的方式。好处①使得数据处理结构清晰②依赖于数据数据更新处理结果自动更新③计算属性内部this指向vm实例④在template调用时直接写计算属性名即可⑤常用的是getter方法获取数据也可以使用set方法改变数据⑥相较于methods不管依赖的数据变不变methods都会重新计算但是依赖数据不变的时候computed从缓存中获取不会重新计算。10.vue等单页面应用及其优缺点答优点Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件核心是一个响应的数据绑定系统。MVVM、数据驱动、组件化、轻量、简洁、高效、快速、模块友好。缺点不支持低版本的浏览器最低只支持到IE9不利于SEO的优化如果要支持SEO建议通过服务端来进行渲染组件第一次加载首页耗时相对长一些不可以使用浏览器的导航按钮需要自行实现前进、后退。Vue面试中经常会被问到的面试题/Vue知识点整理532道前端真实大厂面试题学习ES6笔记──工作中常用到的ES6语法2025开年AI技术打得火热正在改变前端人的职业命运阿里云核心业务全部接入Agent体系字节跳动30%前端岗位要求大模型开发能力腾讯、京东、百度开放招聘技术岗80%与AI相关……大模型正在重构技术开发范式传统CRUD开发模式正在被AI原生应用取代最残忍的是业务面临转型领导要求用RAG优化知识库检索你不会带AI团队微调大模型要准备多少数据你不懂想转型大模型应用开发工程师等相关岗没项目实操经验……这不是技术焦虑而是职业生存危机曾经React、Vue等热门的开发框架已不再是就业的金钥匙。如果认为会调用API就是懂大模型、能进行二次开发那就大错特错了。制造、医疗、金融等各行业都在加速AI应用落地未来企业更看重能用AI大模型技术重构业务流的技术人。如今技术圈降薪裁员频频爆发传统岗位大批缩水相反AI相关技术岗疯狂扩招薪资逆势上涨150%大厂老板们甚至开出70-100W年薪挖掘AI大模型人才不出1年 “有AI项目开发经验”或将成为前端人投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘大模型目前在人工智能领域可以说正处于一种“炙手可热”的状态吸引了很多人的关注和兴趣也有很多新人小白想要学习入门大模型那么如何入门大模型呢下面给大家分享一份2025最新版的大模型学习路线帮助新人小白更系统、更快速的学习大模型2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享**一、2025最新大模型学习路线一个明确的学习路线可以帮助新人了解从哪里开始按照什么顺序学习以及需要掌握哪些知识点。大模型领域涉及的知识点非常广泛没有明确的学习路线可能会导致新人感到迷茫不知道应该专注于哪些内容。我们把学习路线分成L1到L4四个阶段一步步带你从入门到进阶从理论到实战。L1级别:AI大模型时代的华丽登场L1阶段我们会去了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理关键技术以及大模型应用场景通过理论原理结合多个项目实战从提示工程基础到提示工程进阶掌握Prompt提示工程。L2级别AI大模型RAG应用开发工程L2阶段是我们的AI大模型RAG应用开发工程我们会去学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3级别大模型Agent应用架构进阶实践L3阶段大模型Agent应用架构进阶实现我们会去学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造我们自己的Agent智能体同时还可以学习到包括Coze、Dify在内的可视化工具的使用。L4级别大模型微调与私有化部署L4阶段大模型的微调和私有化部署我们会更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。整个大模型学习路线L1主要是对大模型的理论基础、生态以及提示词他的一个学习掌握而L3 L4更多的是通过项目实战来掌握大模型的应用开发针对以上大模型的学习路线我们也整理了对应的学习视频教程和配套的学习资料。二、大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF三、大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。四、大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。五、大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。因篇幅有限仅展示部分资料需要点击下方链接即可前往获取2025最新版CSDN大礼包《AGI大模型学习资源包》免费分享