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

电话网站源码网站建设学的是什么知识

电话网站源码,网站建设学的是什么知识,西宁市网站建设价格,泰兴网站建设开发vue3比vue2有什么优势? 性能更好,打包体积更小,更好的ts支持,更好的代码组织,更好的逻辑抽离,更多的新功能。 描述Vue3生命周期 Composition API的生命周期: onMounted()onUpdated()onUnmounted…

vue3比vue2有什么优势?


性能更好,打包体积更小,更好的ts支持,更好的代码组织,更好的逻辑抽离,更多的新功能。

描述Vue3生命周期


Composition API的生命周期:

  • onMounted()
  • onUpdated()
  • onUnmounted()
  • onBeforeMount()
  • onBeforeUpdate()
  • onBeforeUnmount()
  • onErrorCaptured()
  • onRenderTracked()
  • onRenderTriggered()
  • onActivated()
  • onDeactivated()
  • onServerPrefetch()

beforecate和created被setup方法本身所取代。

Options API的生命周期:

  • beforeCreate
  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • updated
  • beforeUnmount
  • unmounted
  • errorCaptured
  • renderTracked
  • renderTriggered
  • activated
  • deactivated
  • serverPrefetch

如何看待Composition API 和 Options API?


Composition APIOptions API是Vue.js中的两种组件编写方式。

Options API是Vue.js早期版本中使用的编写方式,通过定义一个options对象进行组件的配置,包括props、data、methods、computed、watch等选项。这种方式的优点在于结构清晰、易于理解,在小型项目中比较实用。

Composition APIVue.js 3.x版本中新引入的一种组件编写方式,它以函数的形式组织我们的代码,允许我们将相关部分组合起来,提高了代码的可维护性和重用性。Composition API还提供了模块化、类型推断等功能,可以更好地实现面向对象编程的思想。

Composition API 更好的代码组织,更好的逻辑复用和可维护性,更好的类型推导,可拓展性更好;

两种API各有优缺点,使用哪种API取决于具体的项目需求。对于小型项目,Options API更为简单方便;对于大型项目,Composition API可以更好地组织代码。

总之,Vue.js的Composition APIOptions API是为了满足不同开发者的需求而存在的,我们应该根据具体的场景选择使用哪种API,以达到更好的开发效果和代码质量。

官方文档解答:为什么要有组合式 API?

Vue3.0有什么更新?


性能优化Vue.js 3.0使用了Proxy替代Object.defineProperty实现响应式,并且使用了静态提升技术来提高渲染性能。新增了编译时优化,在编译时进行模板静态分析,并生成更高效的渲染函数。

Composition APIComposition API是一个全新的组件逻辑复用方式,可以更好地组合和复用组件的逻辑。

TypeScript支持Vue.js 3.0完全支持TypeScript,在编写Vue应用程序时可以更方便地利用TS的类型检查和自动补全功能。

新的自定义渲染APIVue.js 3.0的自定义渲染API允许开发者在细粒度上控制组件渲染行为,包括自定义渲染器、组件事件和生命周期等。

改进的Vue CLIVue.js 3.0使用了改进的Vue CLI,可以更加灵活地配置项目,同时支持Vue.js2.x项目升级到Vue.js 3.0

移除一些APIVue.js 3.0移除了一些不常用的API,如过渡相关API,部分修饰符等。

Proxy和Object.defineProperty的区别?


ProxyObject.defineProperty都可以用来实现JavaScript对象的响应式,但是它们有一些区别:

实现方式ProxyES6新增的一种特性,使用了一种代理机制来实现响应式。而Object.defineProperty是在ES5中引入的,使用了gettersetter方法来实现。

作用对象Proxy可以代理整个对象,包括对象的所有属性、数组的所有元素以及类似数组对象的所有元素。而Object.defineProperty只能代理对象上定义的属性。

监听属性Proxy可以监听到新增属性和删除属性的操作,而Object.defineProperty只能监听到已经定义的属性的变化。

性能:由于ProxyES6新增特性,其内部实现采用了更加高效的算法,相对于Object.defineProperty来说在性能方面有一定的优势。

综上所述,虽然Object.definePropertyVue.js 2.x中用来实现响应式,但是在Vue.js 3.0中已经采用了Proxy来替代,这是因为Proxy相对于Object.defineProperty拥有更优异的性能和更强大的能力。

Vue3如何实现响应式?


使用ProxyReflect API实现vue3响应式。

Vue3会将响应式对象转换为一个Proxy对象,并利用Proxy对象的getset拦截器来实现对属性的监听和更新。当访问响应式对象的属性时,get拦截器会被触发,此时会收集当前的依赖关系,并返回属性的值;当修改响应式对象的属性时,set拦截器会被触发,此时会触发更新操作,并通知相关的依赖进行更新。

优点:可监听属性的变化、新增与删除,监听数组的变化

watch和watchEffect的区别?


watch 和 watchEffect 都是监听器,watchEffect 是一个副作用函数。它们之间的区别有:

watch 既要指明监视的数据源,也要指明监视的回调。而 watchEffect 可以自动监听数据源作为依赖。不用指明监视哪个数据,监视的回调中用到哪个数据,那就监视哪个数据。

watch 可以访问改变之前和之后的值,watchEffect 只能获取改变后的值。

watch 运行的时候不会立即执行,值改变后才会执行,而 watchEffect 运行后可立即执行。这一点可以通过 watch 的配置项 immediate 改变。

watchEffect有点像 computed , 但 computed 注重的计算出来的值(回调函数的返回值), 所以必须要写返回值。而 watcheffect注重的是过程(回调函数的函数体),所以不用写返回值。

watch与 vue2.x中 watch 配置功能一致,但也有两个小坑:

  • 监视 reactive 定义的响应式数据时,oldValue 无法正确获取,强制开启了深度监视(deep配置失效)
  • 监视 reactive 定义的响应式数据中某个属性时,deep配置有效。

请介绍Vue3中的Teleport组件


Vue 3 中新增了teleport(瞬移)组件,可以将组件的 DOM 插到指定的组件层,而不是默认的父组件层,可以用于在应用中创建模态框、悬浮提示框、通知框等组件。

Teleport 组件可以传递两个属性:

to (必填):指定组件需要挂载到的 DOM 节点的 ID,如果使用插槽的方式定义了目标容器也可以传入一个选择器字符串。

disabled (可选):一个标志位指示此节点是否应该被瞬移到目标中,一般情况下,这个 props 建议设为一个响应式变量来控制 caption 是否展示。

总之,Teleport 组件是 Vue3 中新增的一个非常有用的组件,可以方便地实现一些弹出框、提示框等组件的功能,提高了开发效率。

如何理解reactive、ref 、toRef 和 toRefs?


ref: 函数可以接收原始数据类型引用数据类型。ref函数创建的响应式数据,在模板中可以直接被使用,在 JS 中需要通过 .value 的形式才能使用。

reactive: 函数只能接收引用数据类型

toRef:针对一个响应式对象的属性创建一个ref,使得该属性具有响应式,两者之间保持引用关系。

<script setup> 是干啥的?


<scrtpt setup> 是 vue3 的语法糖,简化了组合式 API 的写法,并且运行性能更好。使用 <script setup>语法糖的特点:

属性和方法无需返回,可以直接使用。

引入组件的时候,会自动注册,无需通过 components 手动注册。

使用 defineProps 接收父组件传递的值。

useAttrs 获取属性,useSlots 获取插槽,defineEmits 获取自定义事件。

默认不会对外暴露任何属性,如果有需要可使用 defineExpose

v-if 和 v-for 的优先级哪个高?


在 vue2 中 v-for 的优先级更高,但是在 vue3 中优先级改变了,v-if 的优先级更高。

setup中如何获得组件实例?


setup 函数中,你可以使用 getCurrentInstance() 方法来获取组件实例。getCurrentInstance()方法返回一个对象,该对象包含了组件实例以及其他相关信息。

需要注意的是,getCurrentInstance() 方法只能在 setup 函数中使用,而不能在组件的生命周期方法(如 createdmounted 等方法)中使用。另外,需要注意的是,如果在 setup 函数返回之前访问了 instance 对象,那么它可能是 undefined ,因此我们需要对其进行处理。

vue2和vue3 核心 diff 算法区别?


Vue 2.x使用的是双向指针遍历的算法,也就是通过逐层比对新旧虚拟DOM树节点的方式来计算出更新需要做的最小操作集合。但这种算法的缺点是,由于遍历是从左到右、从上到下进行的,当发生节点删除或移动时,会导致其它节点位置的计算出现错误,因此会造成大量无效的重新渲染。

Vue 3.x使用了经过优化的单向遍历算法,也就是只扫描新虚拟DOM树上的节点,判断是否需要更新,跳过不需要更新的节点,进一步减少了不必要的操作。此外,在虚拟DOM创建后,Vue 3会缓存虚拟DOM节点的描述信息,以便于复用,这也会带来性能上的优势。同时,Vue 3还引入了静态提升技术,在编译时将一些静态的节点及其子节点预先处理成HTML字符串,大大提升了渲染性能。

因此,总体来说,Vue 3相对于Vue 2拥有更高效、更智能的diff算法,能够更好地避免不必要的操作,并提高了渲染性能。

Vue3为什么比Vue2快?


响应式系统优化:Vue3引入了新的响应式系统,这个系统的设计让Vue3的渲染函数可以在编译时生成更少的代码,这也就意味着在运行时需要更少的代码来处理虚拟DOM。这个新系统的一个重要改进就是提供了一种基于Proxy实现的响应式机制,这种机制为开发人员提供更加高效的API,也减少了一些运行时代码。

编译优化:Vue3的编译器对代码进行了优化,包括减少了部分注释、空白符和其他非必要字符的编译,同时也对编译后的代码进行了懒加载优化。

更快的虚拟DOM:Vue3对虚拟DOM进行了优化,使用了跟React类似的Fiber算法,这样可以更加高效地更新DOM节点,提高性能。

Composition API:Vue3引入了Composition API,这种API通过提供逻辑组合和重用的方法来提升代码的可读性和重用性。这种API不仅可以让Vue3应用更好地组织和维护业务逻辑,还可以让开发人员更加轻松地实现优化。

vue3.0编译做了哪一些优化?


Vue 3.0作为Vue.js的一次重大升级,其编译器也进行了一些优化,主要包括以下几方面:

静态树提升: Vue 3.0 通过重写编译器,实现对静态节点(即不改变的节点)进行编译优化,使用HoistStatic功能将静态节点移动到 render 函数外部进行缓存,从而服务端渲染和提高前端渲染的性能。

Patch Flag:在Vue 3.0中,编译的生成vnode会根据节点patch的标记,只对需要重新渲染的数据进行响应式更新,不需要更新的数据不会重新渲染,从而大大提高了渲染性能。

静态属性提升:Vue3中对不参与更新的元素,会做静态提升,只会被创建一次,在渲染时直接复用。免去了重复的创建操作,优化内存。没做静态提升之前,未参与更新的元素也在render函数内部,会重复创建阶段。
做了静态提升后,未参与更新的元素,被放置在render 函数外,每次渲染的时候只要取出即可。同时该元素会被打上静态标记值为-1,特殊标志是负整数表示永远不会用于 Diff。

事件监听缓存:默认情况下绑定事件行为会被视为动态绑定(没开启事件监听器缓存),所以每次都会去追踪它的变化。开启事件侦听器缓存后,没有了静态标记。也就是说下次diff算法的时候直接使用。

优化Render function:Vue 3.0的compile优化还包括:Render函数的换行和缩进、Render函数的条件折叠、Render函数的常量折叠等等。

总之,Vue 3.0通过多方面的编译优化,进一步提高了框架的性能和效率,使得Vue.js更加高效和易用。

谈谈Pinia?


Pinia 是 Vue 官方团队成员专门开发的一个全新状态管理库,并且 Vue 的官方状态管理库已经更改为了 Pinia。在 Vuex 官方仓库中也介绍说可以把 Pinia 当成是不同名称的 Vuex 5,这也意味不会再出 5 版本了。

优点:

  • 更加轻量级,压缩后提交只有1.6kb。

  • 完整的 TS 的支持,Pinia 源码完全由 TS 编码完成。

  • 移除 mutations,只剩下 stateactionsgetters

  • 没有了像 Vuex 那样的模块镶嵌结构,它只有 store 概念,并支持多个 store,且都是互相独立隔离的。当然,你也可以手动从一个模块中导入另一个模块,来实现模块的镶嵌结构。

  • 无需手动添加每个 store,它的模块默认情况下创建就自动注册。

  • 支持服务端渲染(SSR)。

  • 支持 Vue DevTools

未完待续......

参考文章:vue3面试题八股集合——2023

最后编辑于:2025-06-15 10:04:28


喜欢的朋友记得点赞、收藏、关注哦!!!


文章转载自:

http://6CJGP0J2.trsxw.cn
http://7uZyYr7n.trsxw.cn
http://FaESje0Z.trsxw.cn
http://gCCTcJUO.trsxw.cn
http://NVaHlytc.trsxw.cn
http://OiAbabR5.trsxw.cn
http://NkRFcr4r.trsxw.cn
http://Tq6Nl6rv.trsxw.cn
http://UskYLGxg.trsxw.cn
http://klu0saIQ.trsxw.cn
http://oLI860aM.trsxw.cn
http://RbL95Eg3.trsxw.cn
http://MfL0qPmt.trsxw.cn
http://vuqP6Hsk.trsxw.cn
http://kEFSo4kB.trsxw.cn
http://0b4VKkjF.trsxw.cn
http://b5sxuKY0.trsxw.cn
http://Lnw41u2A.trsxw.cn
http://EY5KfPAp.trsxw.cn
http://GtQNMdhq.trsxw.cn
http://dma4ZU56.trsxw.cn
http://OE7927lk.trsxw.cn
http://5KCgo1Cv.trsxw.cn
http://11gkXHIf.trsxw.cn
http://HI2YUVvW.trsxw.cn
http://Ia6FtZUx.trsxw.cn
http://VL8e1sVf.trsxw.cn
http://36BxL3or.trsxw.cn
http://ofMNicPZ.trsxw.cn
http://ZA500udb.trsxw.cn
http://www.dtcms.com/wzjs/762392.html

相关文章:

  • 北京朝林建设集团网站织梦门户网站源码下载
  • vs网站开发建表怎么肩啊友情链接的网站有哪些
  • 东莞优速网站建设推广罗裕立创电子元器件商城官网
  • 要想用谷歌访问外国网站怎么做珠海商城网站
  • 手机响应式网站怎么做wordpress 最大上传文件大小 8m
  • 怎么做一个简单的网站软件开发文档编写
  • 东莞做网站-南城信科网页设计步骤模板素材
  • 网站自助搭建平台红色礼品网站模板
  • 企业自建站案例哔哩哔哩网站怎么做视频
  • 镇江网站建设门户报价wordpress筛选插件
  • 怎么办个人网站网站建设费用计算依据
  • 怎么安装wordpress东莞seo关键词
  • 网站建设策划包括哪些内容昆明学院网站建设与维护试题
  • 墙绘做网站哪家好百度广告联盟一个月能赚多少
  • 资源网站很难做宝尊代运营一年要多少钱
  • 外贸怎样做网站php玩具公司网站源码
  • 邢台提供网站设计公司哪家专业wordpress 免费主题下载
  • 佛山 顺德营销型网站设计天猫的网站建设
  • 微企免费网站建设做家教有什么好的资料网站
  • 简单手机网站模板怎么做阿里巴巴国际网站首页
  • 做城市网站的标语应用公园免费版下载
  • 网站建设招标评分标准郑州中原网站建设
  • 小说网站自主建设联通公网ip申请 做网站
  • 怎么样让网站正常解析免费的app软件下载安装
  • 增城免费网站建设试用虚拟主机不能创建网站
  • 男女怎样做那个视频网站上海工商一网通办
  • 做网站加盟目前流行的网页设计风格
  • 织梦商业网站内容管理系统互站网怎么样
  • 网站开发it项目规划书公司网站排名优化手段
  • 济宁优化公司常州网络推广seo