vue.js - 具有延迟加载的 Vue 命名视图
问题描述
我正在尝试创建我的路线,但我希望它们都使用router-view
我的应用程序中的默认值。查看文档:
https://router.vuejs.org/guide/essentials/named-views.html
我应该能够通过执行以下操作来定位视图:
const routes = [
{
path: "/",
name: "home",
component: {
default: Home
},
},
]
我想和一个孩子一起做这个,所以我这样做了:
{
path: "/categories",
name: "categories",
meta: {
title: "Categories",
},
component: Categories,
children: [
{
path: ":slug",
name: "product-list",
meta: {
title: "Categories",
},
component: { default: ProductList },
],
},
],
},
我没有得到任何编译错误,但是当导航到/categories/televisions
它时只显示Categories组件,而不是ProductList。
所以我的第一个问题是,孩子们可以瞄准应用程序级别router-view
吗?我还尝试添加这样的新内容router-view
:
<router-view />
<router-view name="root" />
然后将我的路线更新为:
{
path: "/categories",
name: "categories",
meta: {
title: "Categories",
},
component: Categories,
children: [
{
path: ":slug",
name: "product-list",
meta: {
title: "Categories",
},
component: { root: ProductList },
},
],
},
但这也不起作用。如果可以做到这一点,那么我的下一个问题就是我要去的地方。我可以使用延迟加载的组件和目标命名/默认router-view
s吗?例如,我有这个功能:
const lazyLoad = (name) => {
return () => import(`../views/${name}/${name}.component.vue`);
};
我从我的路线中调用如下:
{
path: "/categories",
name: "categories",
meta: {
title: "Categories",
},
component: lazyLoad("categories"),
children: [
{
path: ":slug",
name: "product-list",
meta: {
title: "Categories",
},
component: lazyLoad("product-list"),
},
],
},
我可以这样做吗?
{
path: "/categories",
name: "categories",
meta: {
title: "Categories",
},
component: lazyLoad("categories"),
children: [
{
path: ":slug",
name: "product-list",
meta: {
title: "Categories",
},
component: { default: lazyLoad("product-list") },
},
],
},
并瞄准根router-view
?
解决方案
推荐阅读
- swift - 线程 1:FIRESTORE 内部断言失败:文档引用无效。文档引用必须有偶数个段,但 Posts 有 1 个?
- java - ByteBuffer 和 put 数据
- dart - 如何在飞镖中匹配键的子字符串
- python-3.x - 类方法组合
- reporting-services - SSRS + CRM 中的切换表达式:参数“VarExpr”不是有效值”
- angular - 改变组件对象,影响服务对象
- python - 在 Azure Pipelines 上使用 Python 运行 Selenium:安全性
- google-chrome - 谷歌浏览器 DNS 缓存指的是旧网站
- c++11 - std::put_time 对默认语言环境实际上做了什么?
- c++ - C++ 模板化环形缓冲区实现:如何分别声明和初始化?