假设我的Vue.js模板中有一个简单的按钮,它会调用如下方法:
<q-btn label="login" @click="signIn" />
方法完成后,我希望将按钮更改为此:
<q-btn label="Bob" to="/settings" />
问题在于,不可能在一个按钮中结合使用@click
和to
指令。
在这种情况下,最好使用v-if="signedIn"
来触发两个不同的按钮(如果未登录则显示button a
,否则显示button b
)?还是可以删除@click
事件处理程序并将其替换为to
?
首选的处理方式是什么?
答案 0 :(得分:2)
我建议您使用v-if,因为Vue会认识到它是同一元素,并且只会替换使用这些道具/侦听器的属性和组件的片段。
您可以通过使用v-bind和v-on动态绑定道具和侦听器来自行完成此操作。但这在这种情况下是没有意义的。
这种情况在这里描述:https://vuejs.org/v2/guide/conditional.html#Controlling-Reusable-Elements-with-key