Vue.js 如何为除某些部件外的组件设置路由器链接
我已经使用VueJS和tailwind创建了一张卡。卡片上有一些按钮,如编辑和删除。我想在这个卡片组件上添加一个路由器链接,这样当用户点击卡片时,它就会打开,但是编辑和删除按钮不再工作,点击它们也会重定向页面。 我怎样才能解决这个问题 这是我的密码:Vue.js 如何为除某些部件外的组件设置路由器链接,vue.js,vue-component,vue-router,Vue.js,Vue Component,Vue Router,我已经使用VueJS和tailwind创建了一张卡。卡片上有一些按钮,如编辑和删除。我想在这个卡片组件上添加一个路由器链接,这样当用户点击卡片时,它就会打开,但是编辑和删除按钮不再工作,点击它们也会重定向页面。 我怎样才能解决这个问题 这是我的密码: <router-link to="somewhere"> <card-component :data="products"></card-component> </router-link>
<router-link to="somewhere">
<card-component :data="products"></card-component>
</router-link>
卡组件:
<div :key="id" v-for="(row, id) in data">
<div>
<img alt="Product Image"
v-lazy="row.img_url"
class="vs-images-hover-zoom rounded-lg p-0 h-24 w-32 object-center object-cover"/>
</div>
<div>
<p class="product-name font-medium">{{ row.name }}</p>
</div>
<div class="whitespace-no-wrap">
<feather-icon icon="EditIcon" svgClasses="w-5 h-5 hover:text-primary stroke-current" @click="editPopup = true"/>
<feather-icon icon="TrashIcon" svgClasses="w-5 h-5 hover:text-danger stroke-current" class="ml-2" @click="deletePopup = true"/>
</div>
</div>
{{row.name}
似乎您遇到了问题,因为按钮的点击被路由器链接捕获。您可以执行以下操作之一:
@click.stop
(它将停止事件传播)李>
路由器链接
包装整个卡片,并将其仅放在图像和标题元素上李>
router链接
,使用this.$router,在卡的右侧区域获得@click事件。按
来处理它似乎您遇到了问题,因为按钮的点击被路由器链接捕获。您可以执行以下操作之一:
@click.stop
(它将停止事件传播)李>
路由器链接
包装整个卡片,并将其仅放在图像和标题元素上李>
router链接
,使用this.$router,在卡的右侧区域获得@click事件。按
来处理它如果您希望EditIcon和TrashIcon成为链接,则需要将它们包装在两个单独的路由器链接中。路由器链路包装卡组件的目的是什么?它应该去哪里?@LannyBose它应该去它的产品的查看页面,我想用户更容易点击卡片上的某个地方打开查看页面,而不是点击一个小按钮。所以你最初的想法(点击卡片会显示,但点击卡片上的编辑会编辑)是可行的。你只是在你的卡组件中没有任何路由器链接可编辑…?你说那些按钮“不再工作”,但那里没有链接。它们有用吗?@LannyBose有@点击这些按钮,但点击它们,只会将页面重定向到产品视图。如果您希望EditIcon和TrashIcon成为链接,则需要将它们包装在两个单独的路由器链接中。路由器链路包装卡组件的目的是什么?它应该去哪里?@LannyBose它应该去它的产品的查看页面,我想用户更容易点击卡片上的某个地方打开查看页面,而不是点击一个小按钮。所以你最初的想法(点击卡片会显示,但点击卡片上的编辑会编辑)是可行的。你只是在你的卡组件中没有任何路由器链接可编辑…?你说那些按钮“不再工作”,但那里没有链接。它们有用吗?@LannyBose有@点击这些按钮,但点击它们,只会将页面重定向到产品视图。我真的想保留这个概念,我尝试了
@click。停止,但没有改变。我真的想保留这个概念,我尝试了@click。停止,但没有改变。