小编Héc*_*tor的帖子

在带有 Quasar 框架 (v2) 的纯 .js 文件中使用 vue router (v4)

我正在尝试从 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.js vue-router quasar-framework vuejs3 vue-router4

6
推荐指数
1
解决办法
3557
查看次数

Lazy Route 被预取,忽略 webpack 魔法注释 (Vue)

我需要开发一个具有登录视图的服务器端身份验证的应用程序。如果我想使用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)

prefetch webpack vue.js vue-router

2
推荐指数
1
解决办法
2419
查看次数

Promise catch:如何知道错误是来自 Promise 拒绝还是来自 then 语句

想象一个返回 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 是这么说的)。

哪一个是更好的方法?

javascript promise es6-promise

1
推荐指数
1
解决办法
1663
查看次数