각 탭을 클릭할때 active class 변화 책임
212
작성한 질문수 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
112
2
super.show() 호출하는 이유가 궁금합니다.
1
101
2
class와 constructor를 이용한 객체 지향 프로그래밍
0
240
2
mvc 패턴 질문
0
209
2
Cannot read properties of undefined (reading 'props')
0
290
2
delegate, emit 필요한 이유
0
206
2
어떤거를 먼저 들어야 하는지 도와주세요
1
275
1
localhost:8080 접속 불가
1
296
1
최근검색어 3 풀이에서
1
195
1
import 문제
1
246
1
자동변환 관련
1
213
1
sort() 질문 드립니다.
1
312
2
reset 시점에 searchResult 빈 배열로 update
2
320
2
Button에 Onclick사용
1
260
1
npx lite-server error 확인 요청드립니다.
1
482
2
node 20이상 쓸때 꿀팁
4
778
3
디버깅 관련질문이 있습니다.
1
306
1
[순수JS2]탭 3(풀이) 질문있습니다.
1
232
1
추상화를 어떻게 받아들이면 될까요??
1
446
1
on 메서드 eventName 문의
1
268
1
import에 관해서 질문드립니다
1
262
1
view.js의 on 메소드에 대해 질문드립니다
1
263
1
componentDidMount에서 getKeywordList()를 하는 이유
1
248
1
[순수JS1]검색폼2_git branch 이동관련
1
283
1





