Vue.js 个名为 javascript 个钩子
Vue.js named javascript hooks
我正在尝试将 Vue.js 与 velocity.js 联系起来。该指南给出了一个示例,但没有使用命名转换。目前我的转换看起来像这样:
<transition name="collapse">
https://vuejs.org/v2/guide/transitions.html#JavaScript-Hooks
Vue.js 文档中给出的示例设置了一个过渡元素,如下所示:
<transition
v-on:before-enter="beforeEnter"
v-on:enter="enter"
v-on:after-enter="afterEnter"
v-on:enter-cancelled="enterCancelled"
v-on:before-leave="beforeLeave"
v-on:leave="leave"
v-on:after-leave="afterLeave"
v-on:leave-cancelled="leaveCancelled"
>
有没有一种方法可以自动执行此操作,而无需事先进行所有设置?第二步当然是简单地拥有一个命名动画,而不必设置所有这些。
我的 Vue.js 组件中的方法最好是这样的:
collapseEnter, collapseEnterCancelled, etc.
但这似乎不起作用。我真的必须设置所有指令还是有更简单的方法?
据我所知,该名称仅在您应用 CSS 类 过渡时使用。它与 javascript 钩子无关。所以是的,您需要明确定义所有挂钩。
你需要。但是可以通过创建一个包装 <transition>
.
的抽象组件来自动绑定这些钩子函数
这很老套,但应该可以。
首先我们注册一个名为autoTransition
的组件:
Vue.component('autoTransition', {
props: ['name', 'vm'],
functional: true,
abstract: true,
render (h, ctx) {
return h('transition', {
name: ctx.props.name,
on: {
'before-enter': ctx.props.vm.beforeEnter,
'enter': ctx.props.vm.enter,
// ... other hooks
}
}, ctx.children)
}
})
你可以像普通过渡一样使用它,但不是传递所有的钩子,你现在可以简单地传递整个 vm
(可以被 $root
引用)和 name
如果您需要:
<auto-transition name="myTransition" :vm="$root">
<h1 v-show="someBool">hello</h1>
</auto-transition>
我正在尝试将 Vue.js 与 velocity.js 联系起来。该指南给出了一个示例,但没有使用命名转换。目前我的转换看起来像这样:
<transition name="collapse">
https://vuejs.org/v2/guide/transitions.html#JavaScript-Hooks
Vue.js 文档中给出的示例设置了一个过渡元素,如下所示:
<transition
v-on:before-enter="beforeEnter"
v-on:enter="enter"
v-on:after-enter="afterEnter"
v-on:enter-cancelled="enterCancelled"
v-on:before-leave="beforeLeave"
v-on:leave="leave"
v-on:after-leave="afterLeave"
v-on:leave-cancelled="leaveCancelled"
>
有没有一种方法可以自动执行此操作,而无需事先进行所有设置?第二步当然是简单地拥有一个命名动画,而不必设置所有这些。
我的 Vue.js 组件中的方法最好是这样的:
collapseEnter, collapseEnterCancelled, etc.
但这似乎不起作用。我真的必须设置所有指令还是有更简单的方法?
据我所知,该名称仅在您应用 CSS 类 过渡时使用。它与 javascript 钩子无关。所以是的,您需要明确定义所有挂钩。
你需要。但是可以通过创建一个包装 <transition>
.
这很老套,但应该可以。
首先我们注册一个名为autoTransition
的组件:
Vue.component('autoTransition', {
props: ['name', 'vm'],
functional: true,
abstract: true,
render (h, ctx) {
return h('transition', {
name: ctx.props.name,
on: {
'before-enter': ctx.props.vm.beforeEnter,
'enter': ctx.props.vm.enter,
// ... other hooks
}
}, ctx.children)
}
})
你可以像普通过渡一样使用它,但不是传递所有的钩子,你现在可以简单地传递整个 vm
(可以被 $root
引用)和 name
如果您需要:
<auto-transition name="myTransition" :vm="$root">
<h1 v-show="someBool">hello</h1>
</auto-transition>