PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2022/08/05 15:16:22
Name Mindow
Subject [질문] [vue js] vue 초보질문. 라디오버튼으로 탭효과 (수정됨)
vue js 초보입니다

vue js 환경에서 라디오 버튼으로 탭효과 처리를 만들어봤는데요

라디오 버튼이 3개가 있고 라디오 버튼 클릭하면 하단에 그에 맞는 박스가 노출되는 형태입니다

노출되는 방법은 v-if 같은걸로 하진 않았고 박스에 멀티 클래스 제어하는 방식으로 했습니다.

(기본은 display: none; 클래스 show가 추가되면 display: block;)


코딩 후 빌드해서 페이지 로드했더니 현상이...
라디오버튼 2를 클릭하면 박스1,3은 미노출, 박스2만 노출되어야 정상인데
박스1노출, 박스2노출, 박스3 미노출 상태가 됩니다.
웃긴 건 두번째 클릭부터는 정상으로 작동합니다.

처음 페이지 로드 or 새로고침 했을 때
첫번째 클릭시 비정상적으로 작동하고 두번째 클릭부터는 정상 작동하네요

그리고 편집기에서 소스를 이 부분에 영향 없게 수정 (예를 들어 주석을 단더던지 전혀 다른 부분 수정을 한다던지)해서
브라우저가 자동으로 다시 읽을 땐 영향이 없습니다. 해당 페이지 첫 로드나 새로 고침때만 그렇네요


pgr 에디터 특성상 들여쓰기는 안 이쁜 채로 그냥 넣을게요 양해 부탁 ^^;


[html]

꺽쇠를 넣었더니 pgr 에디터에서 그대로 안 나와서 왼쪽 꺽쇠는  [ 로 오른쪽 꺽쇠는 ]로 대체해서 넣었습니다


[div class="c-form-radio-wrap"]
                  [div class="c-form-radio"]
                    [input type="radio" name="radio-name" id="radio-id1" value="radioValue1" v-model="radioModel"]
                    [label for="radio-id1"]라디오버튼1[/label]
                  [/div]
                  [div class="c-form-radio"]
                    [input type="radio" name="radio-name" id="radio-id2" value="radioValue2" v-model="radioModel"]
                    [label for="radio-id2"]라디오버튼2[/label]
                  [/div]
                  [div class="c-form-radio"]
                    [input type="radio" name="radio-name" id="radio-id3" value="radioValue3" v-model="radioModel"]
                    [label for="radio-id3"]라디오버튼3[/label]
                  [/div]
                [/div]


                [div class="box1 show"]box1[/div]
                [div class="box2"]box2[/div]
                [div class="box3"]box3[/div]





[스크립트]

export default {
  data() {
    return {
      radioModel: 'radioValue1'
    }
  },
  watch: {
      radioModel(data){
        const box1 = document.querySelector('.box1');
        const box2 = document.querySelector('.box2');
        const box3 = document.querySelector('.box3');
        if(data == "radioValue1") {
          box2.classList.remove('show');
          box3.classList.remove('show');
          box1.classList.add('show');
        }
        else if(data == "radioValue2") {
          box1.classList.remove('show');
          box3.classList.remove('show');
          box2.classList.add('show');
        }
        else if(data == "radioValue3") {
          box1.classList.remove('show');
          box2.classList.remove('show');
          box3.classList.add('show');
        }
      }
    }
}




========================

원인이 무엇일까요

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
22/08/05 15:39
수정 아이콘
(수정됨) <div class="box1" :class="{'show' : radioModel === 'radioValue1'}">box1</div>
<div class="box2" :class="{'show' : radioModel === 'radioValue2'}">box2</div>
<div class="box3" :class="{'show' : radioModel === 'radioValue2'}">box3</div>
이렇게 바꾸시면 스크립트 부분의 watch는 필요 없어집니다.
저렇게 dom의 클래스로 접근해서 스타일을 제어하는 방식은 추천드리지 않아요

https://codepen.io/zealiath/pen/LYdmVee 이렇게만 하셔도 됩니다.
22/08/05 16:19
수정 아이콘
답변 감사합니다~! 해결되었어요~
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
172527 [질문] PC 견적요정님들 오지랖 부탁드립니다!(질문빌런 주의) [12] 오렌지 태양 아래10329 23/09/08 10329
171337 [질문] 거실에서 4K로 업무를 보고 싶은데요, 장비 조언 부탁드립니다. [4] 크로플8070 23/06/26 8070
171101 [질문] 파이썬이 배울만할까요? [8] 토꺙9754 23/06/11 9754
170731 [질문] 일상생활에 도움되는 기초학문 뭐가있을까요? [24] 푸끆이9265 23/05/21 9265
170429 [질문] 조립 컴퓨터 사양 질문입니다. [15] 오월의날씨9452 23/05/02 9452
170080 [질문] 32인치 모니터 QHD 네이티브 vs. 4K 150% 확대 [6] 예루리9496 23/04/13 9496
169480 [질문] 컴퓨터 언어 문외한입니다. 도와주세요. [4] 복합우루사8135 23/03/10 8135
169296 [질문] 프로그래밍 입문하려면 어떤 언어가 가장 좋을까요? [22] sionatlasia13346 23/02/28 13346
169162 [질문] 개발용(코딩용) 노트북 추천 부탁 드립니다. [11] 상어이빨9689 23/02/21 9689
168999 [질문] 노트북 추천부탁드립니다. [25] 스핔스핔10601 23/02/14 10601
168330 [질문] 코딩대로 자동으로 움직이는 지그를 만들어 보고 싶습니다. [4] 어센틱10255 23/01/09 10255
168084 [질문] 컴퓨터 견적 브레이크 + 질문입니다 [13] 대한민국육군병장12808 22/12/27 12808
167856 [질문] 파이썬으로 몬티홀 문제 시뮬레이션 해보고 있는데 조언 부탁드립니다 [26] NSpire CX II10336 22/12/16 10336
167668 [질문] 개발자분들 이상황이라면 어떻게 하실건가요? [10] 그림속동화10022 22/12/06 10022
166624 [질문] AI/ 머신러닝 관련 배울 수 있는 책 추천 받을 수 있을까요? [6] norrell10102 22/10/14 10102
166401 [질문] 분당 판교쪽 성인 코딩학원이 있을까요? [4] 트라팔가 로우8465 22/10/02 8465
166333 [질문] 메모리가 충분한데 계속 메모리 부족 현상이 나타납니다 [24] 봄날엔12286 22/09/28 12286
166194 [질문] 노트북 ssd추가, 액정필름 어떤 제품이 좋을까요? [8] BlueSKY--11433 22/09/21 11433
166033 [질문] 노트북 추천 부탁드립니다 [4] scscsc9839 22/09/14 9839
165270 [질문] [vue js] vue 초보질문. 라디오버튼으로 탭효과 [2] Mindow3639 22/08/05 3639
165102 [질문] 엑셀에서 시그마(n:1~N) f(n) 구현하려면 코딩해야하나요? [6] 스핔스핔9900 22/07/28 9900
164935 [질문] 교육과정에 필수로 들어가면 좋겠다 싶은 내용이 있으신가요? [30] 물뿔소9014 22/07/20 9014
164598 [질문] Asus 노트북 질문드립니다. 젠북 vs 비버북 [3] 까만고양이5424 22/07/03 5424
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로