javascript - 在 vuejs 中将旧代码修改为 vue router 4

标签 javascript vue.js vue-router

在 Vue Router 4 之前,我有以下标记:

<router-link
              :disabled="!ICanGo(item)"
              :tag="!ICanGo(item) ? 'span' : 'a'"
              :event="ICanGo(item) ? 'click' : ''"
              :to="{ name: 'editUsuario', params: { id: item.id } }"
>{{ item.nome }}</router-link>
使用 Vue Router 4,我现在收到以下警告:
[vue-router]
<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link. 
如何将此代码更改为 Vue Router 4 建议?

最佳答案

基于docs for <router-link> 's v-slot ,Vue Router 4 中的等价物是:

<router-link
  :to="{ name: 'editUsuario', params: { id: item.id } }"
  custom
  v-slot="{ href, navigate }"
>
  <span v-if="!ICanGo(item)">{{ item.nome }}</span>
  <a v-else :href="href" @click="navigate">{{ item.nome }}</a>
</router-link>
!ICanGo(item) 时无需禁用该元素因为 <span>在这种情况下,它本身没有链接激活。
demo

关于javascript - 在 vuejs 中将旧代码修改为 vue router 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65925126/

相关文章:

javascript - 如何将对象正确传递给我的 vue 组件?

vue.js - 未捕获的引用错误 : VueRouter is not Defined

javascript - 当我从 Typescript 中的 NPM 包导入类型时,它来自哪个文件?

javascript - 用 PHPWord setValue 函数替换 html 实体

Javascript获取变量字符串的最后一部分

vue.js - Vuejs 2制作一个全局函数并传递参数

javascript - 如何使用 webpack 和 vue-loader 更改 .vue 文件中 <img> 的 src 属性?

c# - 启用 javascript wp7

javascript - 从 Flask 网络服务器将全局 JSON 传递给 Vue 应用程序

javascript - 动态定义页面方向 - Vue Js