반응형
간단한건데 this 가 confirm 안에 들어간다거나 다른 function 안에서 사용되면 인식이 안된다.
let self = this;
그럴땐 별도 변수에 this 담아서 사용!
728x90
'FrontEnd > Vue' 카테고리의 다른 글
vue emit 사용법 (0) | 2022.08.04 |
---|
간단한건데 this 가 confirm 안에 들어간다거나 다른 function 안에서 사용되면 인식이 안된다.
let self = this;
그럴땐 별도 변수에 this 담아서 사용!
vue emit 사용법 (0) | 2022.08.04 |
---|
자식이 부모에게 값전달
부모
<template>
<AgreeContent v-if="obj.text=='agree'" @text-change-agree="agreeMethod"></AgreeContent>
<ExchangeContent v-if="obj.text=='exchange'"></ExchangeContent>
<br><hr>
<button v-on:click="obj.text= (obj.text=='agree'? 'exchange':'agree')"> click me! </button>
{{obj.text}}
</template>
<script>
import AgreeContent from "@/components/AgreeContent";
import ExchangeContent from "@/components/ExchangeContent";
export default {
name: 'App',
components: {
ExchangeContent,
AgreeContent
},
data() {
return {
obj: {
text: "agree"
}
}
},
methods: {
agreeMethod : function(text) {
this.obj.text = text;
}
}
}
</script>
AgreeContent 라는 커스텀 엘리먼트는
obj.text == agree 일때 출력됨.
ExchangeContent 라는 커스텀 엘리먼트는
obj.text == exchange 일때 출력됨.
AgreeContent 한테 @text-change-agree 라는 key로 agreeMethod를 보냄
(카멜케이스 안먹힘!!!!!!!!!!!!!!!!!!!!!!!!!!! 꼭 - 포함해서 하도록!!!!!!!!!!!)
일단 기본적으로 obj.text == agree로 세팅되어있으므로 <AgreeContent> 컴포넌트만 출력될것임.
자식1 - AgreeContent
<template>
<h2>agree 컴포넌트 입니다</h2>
<p>agree~~~~</p>
<button @click="move">excange로 이동~</button>
</template>
<script>
export default {
name: "AgreeContent",
methods: {
move: function() {
this.$emit('text-change-agree', "exchange");
}
}
}
AgreeContent 에서 버튼을 클릭하면 move 라는 메소드가 실행되고
move에서는 emit 을 통해서 text-change-agree 로 exchange를 보냄
이때 부모창에서 있는 text-change-agree로 들어와서
//부모창 메소드
agreeMethod : function(text) {
this.obj.text = text;
}
이것을 실행하고 부모창의 obj.text == exchange 로 변환되면서
//부모창
<AgreeContent v-if="obj.text=='agree'" @textChangeAgree="agreeMethod"></AgreeContent>
<ExchangeContent v-if="obj.text=='exchange'"></ExchangeContent>
AgreeContent 는 안보이고
ExchangeContent 가 보이게됨.
자식2 - ExchangeContent
<template>
<h2>Excange 컴포넌트 입니다</h2>
<p>Excange~~~~</p>
</template>
<script>
export default {
name: "ExcangeContent",
methods: {
}
}
얘가 보이게될것임
function 안의 function 혹은 confirm 안의 this 불러오기 (0) | 2022.08.10 |
---|