前端必读:Vue响应式系统大PK(下)

在上节中我们对Vue2和Vue3中的响应式系统做了对比,带大家了解了响应式系统的工作原理,今天我们来进一步探索Vue3中的响应式系统API。

为了方便大家更好的理解和学习,我们将方法分组进行归纳。

基本方法

第一组:

包括控制数据响应的最基本方法

实际使用:

前端必读:Vue响应式系统大PK(下)

前端必读:Vue响应式系统大PK(下)

在此示例中,我们探索了四种基本响应式方法的使用。

1.创建一个counterref对象,其值为0。然后在视图中放置两个按钮,用于增加和减少计数器的值。当使用发现计数器没有作用。

2.其次创建一个person响应对象。在视图中放置两个输入控件,分别用于编辑一个人的name和一个人的age。当我们编辑人员的属性时会立即更新。

3.创建一个math只读对象。然后在视图中设置一个按钮,用于将math的PI属性值加倍。该对象只可读,不可修改。

4.创建一个alphabetNumbers对象,将其标记为raw。取其前三位内容。设置一个按钮,将Bproperty的值更改为3。我们会发现可以修改对象,但不会导致视图重新渲染。

markRaw 方法非常适合我们不需要响应的对象,例如一长串国家/地区代码,颜色名称及其对应的十六进制数字,等等。

5.测试和确定我们创建的每个对象的类型,使用onMounted()的生命周期钩子(lifecycle hook)触发这些检查。

类型检查方法

该组包含上述所有四个类型检查器:

更多参考方法

该组包含其他引用方法:

浅层方法

该组中的方法是ref,reactivity和readonly:

通过以下示例来感受这些方法的使用:

前端必读:Vue响应式系统大PK(下)

前端必读:Vue响应式系统大PK(下)

本示例从创建settings浅引用对象开始,在视图中添加两个输入控件以编辑其width和height属性。但该属性却不能修改,为了解决这个问题,添加一个按钮,该按钮可以更改整个对象及其所有属性。

接着创建一个settingsA浅层反应式代理,包含width和height属性,和带有x和y属性的嵌套对象coords。在视图中为每个属性设置一个输入控件。修改width和height属性时,有响应更新,但是修改x和y属性时却没有变化。

最后创建一个settingsB浅层只读对象,属性与settingsA相同。但此处widthorheight属性只可读,不能修改,x和y属性可以正常修改。

最后两个示例中的嵌套对象coords均不受转换的影响, Vue不会跟踪它的任何修改,可以自由修改。

转换方式

接下来的三种方法用于将代理转换为ref或普通对象:

在下面的示例中,将展示这些转换是如何工作:

前端必读:Vue响应式系统大PK(下)

前端必读:Vue响应式系统大PK(下)

在此示例中

1.创建一个基础person反应对象,并将其用作源对象。

2.将name property转换为具有相同名称的ref。在视图中添加两个输入控件-一个用于name引用,另一个用于nameproperty。当其中一个被修改,另一个也会更新。

3.将其中一个人所有属性转换为personDetails对象中包含的各个引用。在视图中再次添加两个输入控件以测试刚刚创建的引用之一。发现personDetailsage与人的age属性完全同步。

4.将person响应性对象转换为rawPerson普通对象。在视图中添加一个输入控件以编辑rawPerson的hobby属性,Vue并不进行跟踪。

计算和监视方法

最后一组方法用于计算复杂值并监控某些值:

我们继续看看以下示例:

前端必读:Vue响应式系统大PK(下)

前端必读:Vue响应式系统大PK(下)

在此示例中,我们创建了一个fullName计算变量,该变量的计算基于firstName和lastName。在视图中添加了两个输入控件,用于编辑全名的两个部分。修改任何部分fullName都会重新计算并更新结果。

接下来,我们创建一个volumeref并为其设置观看效果,每次volume修改后都将运行回调函数。为了验证流程是否这样,我们在视图中添加一个按钮,该按钮将音量增加一倍。接着在回调函数中设置一个条件,以测试该音量的值是否可以分为分成三份,当它返回true时,将显示一条警报消息。

最后,我们创建一个stateref并设置一个watch函数来跟踪它的更改。state改变执行函数。此外我们添加了一个按钮,用于在playing和paused之间切换状态。状态发生切换,则有提示。

watchEffect与watch一些区别:

我们会发现,Vue 3响应式API为各种用例提供​了许多方法,API内容很多,在本教程中我们仅探讨了基础知识。有关更深入的探索,详细信息和边缘案例,请访问Reactivity API文档。

结论

在本文中,我们介绍了什么是响应系统以及如何在Vue 2和Vue 3中实现该系统。一些Vue 2具的缺陷已经在Vue3中被很好的解决。最后让我们总结一下Vue3响应式系统的优缺点。

好处:

缺点:

展开阅读全文

页面更新:2024-05-17

标签:系统   嵌套   视图   示例   控件   函数   按钮   属性   原始   对象   编辑   两个   类型   发现   方法   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top