뷰 라우터를 통해 로드된 컴포넌트에 Vue.js 스코프 스타일을 적용하는 방법
Vue.js 스코프 스타일을 로딩된 컴포넌트에 적용하려면<view-router>
.
코드는 다음과 같습니다.
<template>
<div id="admin">
<router-view></router-view>
</div>
</template>
<style lang="scss" scoped>
#admin {
.actions {
display: none;
span {
cursor: pointer;
}
}
}
</style>
제가 방문했을 때/posts
라고 하는 성분Posts
로딩됩니다.이 컴포넌트 안에는
<div class="actions">
some content
</div>
문제는 에 정의된 스타일이#admin
에 적용되지 않습니다..action
요소.스코프가 설정되어 있지 않은 경우는, 정상적으로 동작합니다.문제가 발생하는 것은,#admin
컴포넌트 스타일링은scoped
.
이 모든 것을 보관하면서.actions
내부 스타일admin
컴포넌트 범위 스타일 태그
https://vue-loader.vuejs.org/en/features/scoped-css.html#deep-selectors 를 이용하실 수 있습니다.
코드 스니펫은 SCSS를 사용하기 때문에 /deep/combinator를 사용해야 합니다.
자 컴포넌트에 영향을 주는 등 스코프 스타일의 셀렉터를 「깊이」로 하고 싶은 경우는, 다음의 조합기를 사용할 수 있습니다.
<style scoped>
.a >>> .b { /* ... */ }
</style>
위의 내용은 다음과 같이 정리됩니다.
.a[data-v-f3f3eg9] .b { /* ... */ }
SAS 등의 일부 프리프로세서에서는 >>>를 올바르게 해석할 수 없는 경우가 있습니다.이 경우, /deep/combinator 를 대신 사용할 수 있습니다.이것은 >> 의 에일리어스로 동작합니다.
그러면 다음과 같은 결과가 됩니다.
<style lang="scss" scoped>
#admin {
some-property: some-style;
/deep/ .actions {
some-property: some-style;
}
}
</style>
스타일을 별도의 파일에 넣고 필요한 모든 구성요소에서 참조할 수 있습니다.
<style src="path/to/your/styles" lang="scss" scoped></style>
이유router-view
태그가 스타일을 아이에게 전달하지 않는 이유는router-view
그 자체는 스타일링 가능한 html 태그가 아니므로 스타일을 적용할 수 없습니다.시도할 수 있지만 렌더링되지 않습니다.
이유:router-view
기본적으로는 템플릿태그 또는 Vue의 플레이스 홀더입니다.component
또는View
그 루트에 대해 호출됩니다.그 결과,router-view
태그는 컴파일된 마크업에는 표시되지 않습니다.표시되는 것은,View
또는Component
로딩되고 있습니다.
앱 엔트리 포인트가 Vue App에서 index.html 파일로 동작하는 것과 같은 방식으로 동작합니다.적어도 그것은 나의 경험과 지식이다.
또한 @Antonio Trapani의 좋은 답변입니다.여러 컴포넌트에 필요한 모든 글로벌 스타일 또는 스타일을 포함하는 scs 파일까지 포함할 수 있습니다.그러면 스타일을 @import 할 수 있습니다.App.vue
앱 전체에 액세스 할 수 있습니다.그리고 IME.
이게 도움이 됐으면 좋겠네요.건배.
언급URL : https://stackoverflow.com/questions/46140062/how-to-apply-vue-js-scoped-styles-to-components-loaded-via-view-router
'programing' 카테고리의 다른 글
mySQL 서브쿼리 제한 (0) | 2022.09.30 |
---|---|
Panda는 시리즈/데이터프레임 컬럼을 조건부 생성 (0) | 2022.09.30 |
문자열에서 선두 문자를 제거하려면 어떻게 해야 합니까? (0) | 2022.09.30 |
업데이트된 열 값을 수동으로 수정할 때 HeidiSQL Before Update 트리거 오류 발생 (0) | 2022.09.30 |
MariaDB SELECT가 다른 트랜잭션이 완료될 때까지 대기하도록 합니다. (0) | 2022.09.28 |