Vue3中怎么使用CompositionAPI解决问题


这篇文章主要介绍“Vue3中怎么使用CompositionAPI解决问题”,在日常操作中,相信很多人在Vue3中怎么使用CompositionAPI解决问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3中怎么使用CompositionAPI解决问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!组件逻辑膨胀导致的可读性变差无法跨组件重用代码Vue2对TS的支持有限在传统的OptionsAPI中我们需要将逻辑分散到以下六个部分。OptionsAPIcomponentspropsdatacomputedmethodslifecycle methods最佳的解决方法是将逻辑聚合就可以很好的代码可读性。这就是我们的CompositionAPI语法能够实现的功能。CompositionAPI是一个完全可选的语法与原来的OptionAPI并没有冲突之处。他可以让我们将相同功能的代码组织在一起,而不需要散落到optionsAPI的各个角落Vue2中的跨组件重用代码,我们大概会有四个选择1、Mixin – 混入代码混入其实就是设计模式中的混合模式,缺点也非常明显。可以理解为多重继承,简单的说就是一个人如何有两个父亲缺点无法避免属性名冲突继承关系不清晰2、Mixin Factory – 混入工厂返回一个✅代码重用方便✅继承关系清洗3、ScopeSlots – 作用域插槽❌可读性不高❌配置复杂 – 需要再模板中进行配置❌性能低 – 每个插槽相当于一个实例4、CompositionApi – 复合API✅代码量少✅没有引入新的语法,只是单纯函数✅异常灵活✅工具语法提示友好 – 因为是单纯函数所以 很容易实现语法提示、自动补偿✅更好的Typescript支持✅在复杂功能组件中可以实现根据特性组织代码 – 代码内聚性, 比如:
排序和搜索逻辑内聚✅组件间代码复用在以下方法前执行:ComponentsPropsDataMethodsComputed PropertiesLifecycle methods可以不在使用难于理解的this有两个可选参数props – 属性 (响应式对象 且 可以监听(watch))context 上下文对象 – 用于代替以前的this方法可以访问的属性对基本数据类型数据进行装箱操作使得成为一个响应式对象,可以跟踪数据变化。可维护性明显提高可以控制哪些变量暴露可以跟中哪些属性被定义 (属性继承与引用透明)JS :需要通过.value访问包装对象模板: 自动拆箱这个地方实在没什么好讲的,和Vue2没变化Spase免费云主机域名sLeft:{{sapcesLeft}}outof{{capacity}}之前reactive 的 Ref 去声明所有的响应式属性但是有另一个等效的方法用它去代替 reactive 的Ref过去我们用vue2.0的data来声明响应式对象,但是现在在这里每一个属性都是响应式的包括computed 计算属性这2种方式相比于第一种没有使用.接下来 我们再声明method 这2种语法都ok,取决于你选择哪一种SpacesLeft:{{event.spacesLeft}}outof{{event.capacity}}在这里我们使用对象都是.属性的方式,但是如果 这个结构变化了,event分开了编程了一个个片段,这个时候就不能用.属性的方式了如果没有 increaseCapacity() 这个方法 直接可以简化为完整代码SpaceLeft:{{event.spacesLeft}}outof{{event.capacity}}使用CompositionAPI的两个理由1、可以按照功能组织代码2、组件间功能代码复用setup中调用生命周期钩子编写一个公共函数usePromise函数需求如下:results : 返回Promise执行结果loading: 返回Promise运行状态PENDING :trueREJECTED : falseRESOLVED: falseerror : 返回执行错误应用
我们考虑一下当你加载一个远程数据时,如何显示loading状态通常我们可以在模板中使用v-if但是在一个组件树中,其中几个子组件需要远程加载数据,当加载完成前父组件希望处于Loading状态时我们就必须借助全局状态管理来管理这个Loading状态这个问题在Vue3中有一个全新的解决方法。这就是Suspense Component,悬念组件。类似React中的Portal, 可以将特定的html模板传送到Dom的任何位置通过选择器QuerySelector配置到此,关于“Vue3中怎么使用CompositionAPI解决问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注百云主机网站,小编会继续努力为大家带来更多实用的文章!

相关推荐: es6如何获取顶层对象

本篇内容介绍了“es6如何获取顶层对象”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! es6获取顶层对象的方式:1、利用“typeof window !== ‘…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/31 19:35
下一篇 03/31 20:50

相关推荐