각 탭을 클릭할때 active class 변화 책임
215
작성한 질문수 6
각 탭을 클릭할때 탭의 active class 변화의 책임이 TabView.js에 있다고 생각해서 TabView클래스 안에서 처리하도록 했습니다.
선택된Tab의 상태를 Controller에게 알리기 전에 View에서 선택된 Tab을 render를 하는것이 MVC 패턴에서 어긋나는 부분인가요?
아래 코드 : 탭상태변화를 바로 View에 반영하고 이벤트발생
전체코드
export default class TabView extends View {
constructor() {
console.log(tag, "constructor");
super(qs("#tab-view"));
this.template = new Template();
// TODO
this.bindEvents();
}
// ✨
bindEvents() {
this.element.addEventListener("click", this.handleTabClick.bind(this));
}
// ✨
handleTabClick(e) {
this.show(e.target.dataset.tab);
this.emit("@tabChanged", { tab: e.target.dataset.tab });
e.stopPropagation();
}
show(selectedTab) {
this.element.innerHTML = this.template.getTabList();
qsAll("li", this.element).forEach((li) => {
li.className = li.dataset.tab == selectedTab ? "active" : "";
});
super.show();
}
// this가 이벤트 객체로 바인딩 되었다.
// this --- e.currentTarget
// this --- TabView
}
답변 1
리액트 1,2부 이후 후속 강의나 준비 중인 다른 강의가 있으신가요?
1
131
2
super.show() 호출하는 이유가 궁금합니다.
1
115
2
class와 constructor를 이용한 객체 지향 프로그래밍
0
259
2
mvc 패턴 질문
0
230
2
Cannot read properties of undefined (reading 'props')
0
306
2
delegate, emit 필요한 이유
0
220
2
어떤거를 먼저 들어야 하는지 도와주세요
1
286
1
localhost:8080 접속 불가
1
310
1
최근검색어 3 풀이에서
1
210
1
import 문제
1
259
1
자동변환 관련
1
221
1
sort() 질문 드립니다.
1
321
2
reset 시점에 searchResult 빈 배열로 update
2
344
2
Button에 Onclick사용
1
276
1
npx lite-server error 확인 요청드립니다.
1
495
2
node 20이상 쓸때 꿀팁
4
787
3
디버깅 관련질문이 있습니다.
1
319
1
[순수JS2]탭 3(풀이) 질문있습니다.
1
247
1
추상화를 어떻게 받아들이면 될까요??
1
457
1
on 메서드 eventName 문의
1
277
1
import에 관해서 질문드립니다
1
275
1
view.js의 on 메소드에 대해 질문드립니다
1
275
1
componentDidMount에서 getKeywordList()를 하는 이유
1
258
1
[순수JS1]검색폼2_git branch 이동관련
1
294
1





