[03/13] TIL

송승찬·2020년 3월 12일
0

CodeSquad_TIL

목록 보기
12/14

//상단 view(발생) , 본문 뷰(수신),하단 뷰 (수신)
// 모델=> 데이터 보관 / 상태 변경을 해도 된다.
//모델의 데이터 변화시 구독하는 뷰가 변화=>뷰가 변해도 모델의 데이터는 바뀌어서는 안된다(의존성 낮추기)
//Model
const Students = {
our_students :[],
addStudent () {},
deleteStudent() {}
}
//View
const view = {
render () {}
}
//상단 메뉴를 클릭하면 ,어떤데이터가 변화하고, 데이터를 수신하는 view들이 변경된다.
//상단메뉴를 클릭하면, 어떤데이터가 변화하고, 데이터를 수신하는 view들이 변경된다.
//데이터 ? btnMenuClicked =true
//선택된 상품은 계속 바뀜->모델이 될 수 있겠다,
//구독 대상을 어딘가에 담아둬야 발행하는 애가 쓸수있나?
//이벤트리스너도 일종의 옵저버 패턴
class Moadel {
changeProduct () {
//하드코딩
// view1.render();
// view2.renderHTML();

    //모델은 뷰를 몰라도 된다.옵저버 패턴,
    this.customerList.forEach(customer=>customer.render());
    this.customerFns.forEach(fn=>fn('data'));
}

}

class ToDo {
constructor () {
super();
}
subscribe() {

}

}

const view1 = {
myMethod() {

},
subscribe () {
    new ToDo().subscribe(this.myMethod)
}

}
//뷰가 모델을 받도록 해야, 컨트롤러는 없고, main.js가 모델 받도록
//유틸의 사용, querySelector, querySelectorAll , classAdd, classRemove

profile
superfly

0개의 댓글