nuxt.js - 如何在 Nuxt JS 中刷新孩子时呈现父母的头部标签?
问题描述
我在以下设置中有父页面和子页面
- 仪表板/
- --child1.vue
- --child2.vue
- 仪表板.vue
我在dashboard.vue 中的代码:
<template>
<body class="hold-transition sidebar-mini layout-fixed">
<div class="wrapper">
<admin-navbar></admin-navbar>
<main-sidebar></main-sidebar>
<div class="content-wrapper">
<NuxtChild />
</div>
</div>
</body>
</template>
<script>
export default {
head() {
return {
link: [
{
rel: "stylesheet",
href: "https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css"
},
{
rel: 'stylesheet',
href: '../adminPanel/plugins/fontawesome-free/css/all.min.css'
},
],
script: [
{
src: '../adminPanel/dist/js/adminlte.js',
body: true
},
{
src: '../adminPanel/dist/js/demo.js',
body: true
},
{
src: '../adminPanel/dist/js/pages/dashboard.js',
body: true
},
],
}
}
}
</script>
在 MainSidebar.vue 组件中,我有以下内容:
<template>
<li class="nav-item">
<NuxtLink to="/vendor/dashboard/child1">
<i class="nav-icon fas fa-tachometer-alt"></i>
Child1
</NuxtLink>
</li>
<li class="nav-item">
<NuxtLink to="/vendor/dashboard/child2">
<i class="nav-icon fas fa-tachometer-alt"></i>
Child2
</NuxtLink>
</li>
</template>
在此设置中,一切正常,直到我在子页面中刷新页面。当我刷新任何子页面时,dashboard.vue 中定义的链接和脚本不再起作用。我正在获取dashboard.vue 文件的html 部分,而不是样式和js 的头部脚本。即使我刷新子页面,如何以它们工作的方式定义它们?
一个回旋处是在 nuxt.config.js 文件中声明样式和脚本链接。但我不想在全球范围内使用这些。仅适用于本页和儿童。
另一种解决方案可能是在我的所有子页面中使用相同的链接和脚本数组变量。但显然我认为这不会有效。
解决方案
绝对路径不是一个稳定可靠的解决方案,而是使用@
or~
运算符来引用静态资源。head()
也不是引用内部/本地静态文件的正确方法(外部文件 URL 除外)
请注意,Nuxt
您应该将静态内容放在assets
目录
assets 目录包含未编译的资产,例如样式、图像或字体。
例如,如果您想在特定组件中导入 CSS 文件,我建议您这样做
component_1.vue
<style src="@/assets/adminPanel/plugins/fontawesome-free/css/all.min.css" scoped>
</style>
甚至对于 JS 文件:
<script>
import "@/assets/adminPanel/dist/js/adminlte.js" ;
export default {
// ...
}
</script>
推荐阅读
- java - 检查谓词泛型的类型
- javascript - 如何在javascript中从父类触发子实例的事件?
- pyspark - 如何更新pyspark中的列值?
- maven - Maven "also-make" 的行为
- python - 如何在 tkinter 的同一个变量中绑定一个又一个函数?
- dbt - 如何修复“无法解析”的 sqlfluff lint 错误
- android - Android 11(仅限)FragmentManager 崩溃 - FragmentManager 已被销毁
- sqlite - 使用 Jetbrains 的 Datagrip 时如何保存 sqlite 数据库
- javascript - Tone.js 完全停止所有播放声音
- javascript - 如何用子元素的高度更新一个元素的高度