Fab*_*chi 3 javascript css vue-router nuxt.js
我正在一个项目中工作,该项目有不同的用户使用他们的徽标。基于 API 调用,我想加载具有不同调色板的不同 CSS。
现在我有一个css文件夹里面assets的文件夹与main.js(我的自定义字体风格等)和其他文件中有自定义调色板:<color-name>-palette.css。
在我中,nuxt.config我这样称呼 CSS 颜色:
css: [
'~/assets/style/app.styl',
'~/assets/css/main.css',
'~/assets/css/orange-palette.css'
],
Run Code Online (Sandbox Code Playgroud)
有什么方法可以根据 URL 路径/API 调用绑定 CSS 文件而不是将路径放在那里?
我不确定我是否也可以在模板上使用它,将 CSS 文件绑定在那里。是否可以?
谢谢
要动态加载 CSS 文件,请使用head()代替head: {}. 这样,值就可以是动态的。在https://codesandbox.io/s/l4on5508zm 上查看以下带有工作演示的代码
<template>
<section>
<h1>Index</h1>
<button @click="swap">swap</button>
<p v-text="cur" />
</section>
</template>
<script>
export default {
head() {
return {
link: [
{
rel: "stylesheet",
href: `/${this.cur}.css`
}
]
};
},
data() {
return {
cur: "light"
};
},
methods: {
swap() {
if (this.cur === "light") {
this.cur = "dark";
} else {
this.cur = "light";
}
}
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
查看上面的代码片段,您可以通过 head() 函数动态引入要在页面上使用的 css 文件。您可以根据用户交互(例如我的按钮单击交互)更改要在任何页面上即时使用的 CSS。
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |