반응형
함수 반환을 사용하여 vue에서 div의 스타일을 정의할 수 있습니까?
prop textpos를 매개 변수로 사용하는 함수 textposit을 v-bind: style로 호출하고 싶습니다.함수를 반환하면 파라미터 값에 따라 div의 스타일이 변경됩니다.
<div class="container" :style=" textposit(textpos) ">
<p class="headline">{{ headline }}</p>
<p class="text">{{ text }}</p>
</div>
제 대본은 다음과 같습니다.
export default {
name: 'page',
components: {
},
props:{
headline: {
type: String,
},
text: {
type: String,
},
img: {
type: String,
},
align:{
type: String,
default: "center",
},
textpos:{
type: String,
default: "left",
},
textrows:{
type: Number,
default: 1,
}
},
methods:{
textposit (pos){
if (pos == "left") {
return{
"grid-column: 4 / 5"
}
}
else{
return{
"grid-column: 1 / 2"
}
}
}
}
}
메서드라고 불리는 것 같지만 div의 스타일은 바뀌지 않습니다.누군가 도와줄 수 있기를 바란다:) 감사합니다.
또, 속성치로서도 사용할 수 있습니다.(색상으로 시각화했습니다)
const {
createApp
} = Vue
const App = {
methods: {
textposit(pos) {
if (pos == "left") {
return "red"
} else {
return "blue"
}
}
}
}
Vue.createApp(App).mount('#app')
<script src="https://unpkg.com/vue@next"></script>
<div id="app">
<div :style="{color: textposit('left')}">TEXT</div>
<div :style="{color: textposit('somethingelse')}">TEXT</div>
</div>
메서드가 아닌 계산 속성으로 정의할 수 있습니다.
<div class="container" :style=" textposit">
스크립트:
export default {
name: 'page',
components: {
},
props:{
//....
},
computed:{
textposit (){
if (this.textpos === "left") {
return{
"grid-column": "4 / 5"
}
}
else{
return{
"grid-column": "1 / 2"
}
}
}
}
}
나도 변했다"grid-column: 4 / 5"
로."grid-column": "4 / 5"
유효한 객체필드로 만듭니다.
언급URL : https://stackoverflow.com/questions/67726152/can-i-use-the-return-of-a-function-to-define-the-style-of-a-div-in-vue
반응형
'source' 카테고리의 다른 글
제목에 링크가 있는 Bootstrap-Vue (0) | 2022.08.29 |
---|---|
Java로 기간을 포맷하는 방법(예: H 형식:MM:SS) (0) | 2022.08.29 |
문자열 보간 Vue js (0) | 2022.08.29 |
계산된 속성 집합이 Vue에서 호출되지 않음 (0) | 2022.08.29 |
Java에서 사용할 수 있는 변수를 Gradle에서 선언할 수 있습니까? (0) | 2022.08.29 |