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
수정 아이콘
답변 감사합니다~! 해결되었어요~
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
169177 [질문] 갤럭시 폴드 4 vs 아이패드 미니6.question [24] 가변11795 23/02/22 11795
169176 [질문] '샤워덕후가 미치면 생기는 일'이란 글에 나왔던 바디워시 말인데요. [2] 쿨럭11110 23/02/22 11110
169175 [질문] 기계식 키보드 연결 케이블 질문입니다 [1] BlueSKY--8563 23/02/22 8563
169174 [질문] 카카오톡 오픈챗 질문입니다~ 나혼자만레벨업7093 23/02/22 7093
169173 [질문] ActiveX 로 VPN연결이 안되네요 [4] 탄야7059 23/02/22 7059
169172 [질문] 마이크로 소프트 팀즈미팅쓰시는분 계실까요? [2] 큐브큐브7513 23/02/22 7513
169171 [질문] 차량 타이어이교체 도와주세요.. [8] 여유를갖자8821 23/02/22 8821
169170 [질문] 알뜰폰 번호이동 관련질문입니다 [7] 송해나6533 23/02/22 6533
169169 [질문] 교통사고가 났습니다. 대처방법이 궁금합니다 [12] 시오냥9542 23/02/22 9542
169168 [질문] 버티컬 마우스 여러 종류 비교해 볼 수 있는 곳 있을까요? [17] Dresden8942 23/02/22 8942
169167 [질문] 영어 해석 관련 질문 합니다. [3] 흐헤헿레레헤헤헿7086 23/02/22 7086
169166 [질문] 러그 깔면 로봇청소기 못쓰나요? [9] 옥동이10984 23/02/22 10984
169165 [질문] 용산아이파크몰에 기계식 키보드 체험해볼만한 곳? [6] 삼성전자8935 23/02/22 8935
169164 [질문] 인터넷 창이 한번씩 멈추는데 도무지 이유를 모르겠습니다. [7] 보로미어6511 23/02/21 6511
169163 [질문] 듀얼센스 사설 수리 업체 좀 알려주세요! [4] 덴드로븀12091 23/02/21 12091
169162 [질문] 개발용(코딩용) 노트북 추천 부탁 드립니다. [11] 상어이빨10245 23/02/21 10245
169161 [질문] 연인과 할 수 있는 커플게임 추천 부탁드립니다! [28] 저글링앞다리13394 23/02/21 13394
169160 [질문] K방역은 있었다고 보시나요? 없었다고 보시나요? [79] 좋구먼9843 23/02/21 9843
169159 [질문] VR 한번 사보려고 하는데, 최신 VR 게임들 추천 좀 부탁드립니다. [5] GoThree10955 23/02/21 10955
169158 [질문] 탕탕특공대 무과금 S총(스총) 질문 [2] 김건희8450 23/02/21 8450
169157 [질문] 연말정산 세액공제 문의 [18] 놔라10334 23/02/21 10334
169156 [질문] 귀멸의 칼날 애니는 완결까지 멀었나요? [17] 빵pro점쟁이19631 23/02/21 19631
169155 [질문] 1시간 건강걷기 vs 10분 최고심박수로 계단오르기 [19] AKbizs11215 23/02/21 11215
목록 이전 다음
댓글

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