vue3 setup中使用beforeRouterEnter

业务中有需要使用beforeRouterEnter又不想写在router.js中,于是使用了defineComponent与setup方式混写

要点是如果要引用setup中的方法,需要用defineExpose暴露出去

<script>
import { defineComponent } from "vue";
export default defineComponent({
  name: "CommonRefresh",
  beforeRouteEnter(to, from, next) {
    next((vm) => {
      vm.backFrom(from)
    });
  },
});
</script>
<script setup>
import { useRouter } from "vue-router";
const router = useRouter();
const backFrom = (from) => {
  router.replace({
    path: from?.fullPath,
  });
};
defineExpose({
  backFrom,
});
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。