当前位置: 首页 > Web前端 > vue.js

CreateReusableTransition

时间:2023-04-01 11:39:20 vue.js

inVue作者:Matt译者:前端小智来源:Medium欢迎来到星和完美。面试时可参考考点复习。我希望我们能在一起。Vue.js中的过渡非常酷。毫无疑问,他们让一个应用程序变得非常容易动画化,但他们通常不得不在每个项目中从头开始编写,甚至需要引入animate.css这样的CSS库来让他们变得更强大。如果我们可以将它们封装到组件中并在多个项目中简单地重用它们会怎样?我们将介绍几种定义转换的方法,并深入研究如何使它们真正可重用。原始过渡组件和CSS定义过渡的最简单方法是使用过渡或过渡组组件。这需要为转换定义一个名称和一些CSS。exportdefault{};//App.vue通过在transition组件中提供一个slot,我们几乎可以使用基本的transition组件以同样的方式使用它。这比前面的例子稍微好一点,但是如果我们想传递其他过渡特有的props,比如mode或者一些hooks,怎么办?Wrappedwrappertransitioncomponent幸运的是,Vue中有一个特性可以让我们将用户指定的所有额外的props和listeners传递给我们内部的标签/组件。如果您还不知道,您可以通过$attrs访问额外传递的props并将它们与v-bind结合使用以将它们绑定为props。这同样适用于通过$listeners的事件并通过v-on应用它们。//FadeTransition.vue//App.vue...

...完整案例地址:https://codesandbox.io/s/yjl1...现在,我们可以传递普通过渡组件接受的任何事件和支持,这使我们的组件更具可重用性。但为什么不更进一步,增加通过prop轻松自定义持续时间的可能性。ExplicitdurationpropVue为过渡组件提供了一个durationprop,但是,它是为更复杂的动画链接而设计的,它有助于Vue将它们正确地链接在一起。在我们的例子中,我们真正需要的是通过组件属性来控制CSS动画/过渡。我们可以通过不在CSS中指定明确的CSS动画持续时间来做到这一点,而是作为一种样式。我们可以借助转换钩子来做到这一点,它与组件生命周期钩子非常相似,但它们在转换所需元素之前和之后被调用。让我们看看它是如何工作的。//FadeTransition.vue完整示例地址:https://codesandbox.io/s/j4qn...现在,我们可以控制实际可见的过渡时间,这使得我们的过渡可重用灵活且易于使用但是如何转换列表项等多个元素呢?过渡组支持你能想到的最直接的方法可能是创建一个新组件,比如fade-transition-group,然后用transition-group标签替换当前的过渡标签来实现组过渡。如果我们可以在同一个组件中执行此操作并公开一个可以切换到过渡组实现的groupprop会怎样?幸运的是,我们可以通过渲染函数或组件和属性来做到这一点。//FadeTransition.vue//App.vue...<淡入淡出过渡组:duration="300">
...完整案例地址:https://codesandbox.io/s/pk9r...介绍了一个带transition的文档Warningfor-groupelements我们基本上要设置每个item的当元素离开时定位到绝对,以实现其他项目的平滑移动动画。我们还必须添加一个移动类并手动指定转换持续时间,因为没有用于移动的JS挂钩。我们将这些调整添加到我们之前的示例中。稍微调整一下,通过提取mixin中的JS逻辑,我们可以轻松地应用它来创建新的过渡组件,只需将其放入下一个项目即可。VueTransition在此之前描述的所有内容基本上就是这个过渡小集合所包含的内容。它有10个封装的过渡组件,每个大约1kb(缩小)。我认为它非常方便,可以轻松地用于不同的项目。您可以试一试:)总结我们从一个基本的过渡示例开始,最终创建具有可调整持续时间和过渡组支持的可重用过渡组件。我们可以使用这些技术根据我们的需要创建我们自己的过渡组件。我希望读者能从本文中学到一些东西,它可以帮助您构建功能更好的过渡组件。代码部署后可能存在的bug,无法实时获知。事后为了解决这些bug,花费了大量的时间在日志调试上。顺便推荐一个好用的bug监控工具Fundebug。原文:https://levelup.gitconnected....每周更新交流文章。可以微信搜索“大千世界”阅读即时更新(比博文早一两篇)。这篇文章在GitHub上https://github.com/qq449245884/xiaozhi已经收录,整理了很多我的文档。欢迎明星和完美。面试可以参考考点。另外,关注公众号,后台会回复福利,看到福利就知道了。

猜你喜欢