|
Classic Honda Owners Club Forum fanów starych Hond
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
rmruhul
Dołączył: 02 Gru 2023 Posty: 1
|
Wysłany: Sob Gru 02, 2023 05:23 Temat postu: 中有哪些选 |
|
|
可以包含组件可以具有的相同属性的对象,我们将它们与组件混合在一起。听起来不错,我可以将所有搜索移到那里,有什么问题吗?有几个。首先,这完全不灵活。如果我想搜索某个端点并将其移动到 mixin,这将是我可以搜索的唯一端点。Mixin 不接受参数。我创建了一个mixin,它是完全静态的。第二个问题是混合了 mixin,这意味着对于某些属性来说,它就像合并一样发生。例如,如果您创建了挂钩,它将被合并。mixin 组件的生命周期钩子中的所有逻辑都合并在一起。但是,如果您在 mixin 中有一个数据属性、一个冷查询,并且万一在组件中也有相同的属性,则该组件具有优先级。它将被覆盖。您不会收到任何警告。绝对地。它就会发生,而你不会知道它发生了。
德鲁:所有范围完全混合?
娜塔莉亚:是的,完全如此。你不可能看到,而且 mixin 的来源也很不清楚。您只需导 Whatsapp 号码列表 入带有名称的 mixin 并将其放入查看组件属性 mixin 即可。这是非常含蓄的,我是从我自己的经历来看的。我们在 GitLab 中有一个逻辑,其中一个组件包含两个 mixin,并且这两个 mixin 中的每一个都包含另一个 mixin。就这样,这是您需要检查的属性,但它不在组件中。让我们更深入地了解第一级 mixin。这个不包含它,这个也不包含它。在哪儿?你潜入很深的地方,只是为了找到这个属性,而测试也变成了一场噩梦。
娜塔莉亚:让我说,Mixin 是一种非常愚蠢的提取逻辑的方法。很简单,很清楚,很容易得到。如果你想在高级水平上使用它,它会给你带来很多问题。Vue 2.0 中抽象逻辑的下一个方法是无渲染组件。在 Vue 中,组件可以包含插槽。基本上是一个可以放置父组件中任何内容的部分。一个小窗口,实际上是一个槽。还有一个作用域插槽的想法。想象一下,可以将自己的范围公开给父级的子组件,并且槽内容将可以访问它。想象一下,我有一个带有插槽的组件,并且组件执行有关搜索的所有逻辑,假设搜索的终点是过去的参数。我们的子组件,例如搜索,然后将其范围的这一部分暴露给父组件。这些是搜索结果。享受。听起来不错。听起来绝对比 mixins 好。我们可以测试参数。这里的逻辑很明确,我们正在返回一些东西。问题?有几个。
娜塔莉亚:首先,您已经创建了组件实例。这并不是世界上最便宜的手术。第二部分,运行时。该组件仅在运行时工作,这意味着该组件公开的属性只能在您将其公开为插槽范围的插槽中使用,因此您的搜索结果仅在模板的一小部分中可用。如果您想使用组件的离散部分,则您无权访问那里。这是运行时。如果您在其他地方需要反应状态,则无需执行此逻辑。当然,它可以像纯函数一样创建助手并返回结果,但是,如果我需要对反应性属性进行操作怎么办?这就是 Composition API 的创建方式。使用 Composition API,您可以拥有独立的反应状态。反应状态不再只是组件的一部分。您可以使任何对象或原始对象具有响应性。你可以将它暴露给父级,这是非常明确的。
娜塔莉亚:您想要返回给父级的每个属性都会公开。它很明确,你可以点击这个,你可以看到它在哪里,它是什么等等。最棒的是,如果您将 Composition API 的一部分包含到具有数据方法、计算机属性等的旧组件中,它就可以正常工作。它工作得非常完美,您只需向组件添加一些反应式属性和方法,您也可以将它们与旧的选项 API 一起使用。
德鲁:这听起来确实会帮助开发人员在涉及非常复杂的组件甚至是稍微复杂的组件组合时清理他们的代码库。您提到了 mixins 等事物的可测试性,Composition API 是否允许更好的可测试性?
娜塔莉亚:是的,肯定是因为组合 API,如果我们从中排除生命周期挂钩,因为您还可以在可组合中运行另一个生命周期挂钩。它实际上是纯函数。你有 S 参数,你正在做一些事情,但在生命周期挂钩之外仍然存在副作用。如您所知,测试纯函数可能是最简单的事情。它只是一个黑匣子,你有 S 参数,你有一些东西可以返回。 _________________ Whatsapp 号码列表 |
|
Powrót do góry |
|
|
Reklama
|
Wysłany: Sob Gru 02, 2023 05:23 Temat postu: |
|
|
|
|
Powrót do góry |
|
|
|
|
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
|
|