我正在尝试从 Quasar 项目中的普通 .js 文件访问路由器,但我无法做到。我搜索了如何在 vue 中执行此操作,人们似乎Router从 导入对象/src/router/index,如下所示:import { Router } from 'src/router/index'。
但 Quasar 不公开对象Router,而是公开一个调用的函数route,该函数接受另一个函数作为返回该对象的参数Router。
export default route(function (/* { store, ssrContext } */) {
const createHistory = process.env.SERVER
? createMemoryHistory
: process.env.VUE_ROUTER_MODE === 'history'
? createWebHistory
: createWebHashHistory;
const Router = createRouter({
scrollBehavior: () => ({ left: 0, top: 0 }),
routes,
// Leave this as is and make changes in quasar.conf.js instead!
// quasar.conf.js -> …Run Code Online (Sandbox Code Playgroud) 我需要开发一个具有登录视图的服务器端身份验证的应用程序。如果我想使用Vue Router在登录和索引(受保护的视图)之间动态切换,我需要避免在成功身份验证之前登录视图下载(预取)索引,因为如果没有,服务器将用登录页面回答索引预取要求。
我试图在具有两条路由的原始 Vue Router 示例中实现此目的。家及周围。第一个被包含,第二个被延迟加载(但预取),这将是实际应用程序中的受保护页面。
为了避免预取,我已经尝试了我找到的所有 webpack 魔术注释,但预取仍然发生。
这是代码:
import Vue from "vue"
import VueRouter from "vue-router"
import Home from "../views/Home.vue"
Vue.use(VueRouter);
const routes = [
{
path: "/",
name: "Home",
component: Home
},
{
path: "/about",
name: "About",
// route level code-splitting
// this generates a separate chunk (about.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () =>
import(/* webpackChunkName: "about"*/ /* webpackMode: "lazy" */ /* webpackPrefetch: false */ /* webpackPreload: false …Run Code Online (Sandbox Code Playgroud) 想象一个返回 Promise 的函数(例如从 fetch API 中获取):
fetch(...)
.then((response) => {...})
.catch((error) => {...});
Run Code Online (Sandbox Code Playgroud)
我如何知道catch语句内的错误是否是由于承诺拒绝而不是语句内的代码引起的then?
像下面这样的东西会起作用:
let success = false;
fetch(...)
.then((response) => {success = true; ...})
.catch((error) => {if(success) ...});
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更好或更本地化的方法来做到这一点。我也尝试过做类似的事情:
fetch(...)
.catch((promiseError) => {...});
.then((response) => {...})
.catch((thenError) => {...});
Run Code Online (Sandbox Code Playgroud)
但我认为它不起作用,因为response没有转发到then声明(或者至少 TS 是这么说的)。
哪一个是更好的方法?
vue-router ×2
vue.js ×2
es6-promise ×1
javascript ×1
prefetch ×1
promise ×1
vue-router4 ×1
vuejs3 ×1
webpack ×1