Вы можете использовать <style scoped>
, а для всего, что выходит за рамки компонента, используйте JS.
Например, если вы хотите, чтобы body
имел определенный стиль для определенного маршрута , вы можете добавить стили в ловушку created
и удалить их в ловушке beforeDestroy
:
created() {
document.getElementsByTagName("body")[0].style.padding = "20rem";
},
beforeDestroy() {
document.getElementsByTagName("body")[0].style.padding = "0rem";
}
Вы даже можете создать целую таблицу стилей и добавить ее в head
:
created() {
const style = document.createElement("style");
style.setAttribute("rel", "stylesheet");
style.setAttribute("type", "text/css");
style.innerHTML = "body { padding: 20rem }";
document.getElementsByTagName("head")[0].appendChild(style);
},
beforeDestroy() {
const head = document.getElementsByTagName("head")[0];
head.removeChild(head.children[head.childElementCount - 1]);
}
Просто убедитесь, что вы правильно выполняете очистку при переходе с маршрута, так как вы можете в конечном итоге оставить таблицу стилей, если, например, head.children[head.childElementCount - 1]
не вернет добавленную вами таблицу стилей.