Frontend

Frontend/Vue.js

[VueJS] Vuex

Vuex란? Vuex는 Vue.js 응용 프로그램을 위한 상태 관리 패턴 + 라이브러리이다. Vue 어플리케이션의 모든 구성 요소에 대한 중앙 집중식 저장소의 역할을 하며, 상태가 예측 가능한 방식으로만 변형될 수 있도록 보장하는 규칙을 가지고 있다. Vuex를 왜 사용하는가? Vue는 컴포넌트 사이에 단방향 통신만을 지원하기 때문이다. Vuex를 꼭 사용할 필요는 없다. 오히려 한두군데서밖에 사용하지 않는 state를 꾸역꾸역 store에 저장하는 것이 더 안 좋을 수도 있음. Vuex의 중심 컨셉 (state, getters, mutations, actions) Vue Component에서 변화가 일어난다면 dispatch 함수를 통해 Actions에 저장된 메소드를 호출한다. Actions의 메소드..

Frontend/Vue.js

[VueJS] Mustache 보간법, 디렉티브(Directives)

텍스트 보간 Mustache 구문을 사용한 텍스트 보간. {{msg}} * Mustache 구문은 데이터를 일반 텍스트로 해석하기 때문에 만약 HTML로 출력하고 싶다면 v-html 디렉티브를 사용해야 한다. 여기에 msg가 출력된다 여기에 msg가 출력된다 Vue.js는 모든 데이터 바인딩 내에서 자바스크립트 표현식의 모든 기능을 지원한다. 가능 불가능 {{ number + 1 }} {{ ok ? 'YES' : 'NO' }} {{ message.split('').reverse().join('') }} {{ var a=1 }} {{ if(ok) {return 'YES'} }} (조건문은 작동하지 않음) 디렉티브 디렉티브는 v-접두사가 있는 특수 속성이다. 디렉티브 속성 값은 단일 자바스크립트 표현식이 된..

Frontend/Vue.js

[VueJS] Vue Instance

Vue Instance 생성 속성 속성 설명 el Vue가 적용될 요소 지정. CSS Selector or HTML Element data Vue에서 사용되는 정보 저장. 객체 또는 함수의 형태. (함수 형태를 더 권장함) emplate 화면에 표시할 HTML, CSS 등의 마크업 요소를 정의하는 속성. 뷰의 데이터 및 기타 속성들도 함꼐 화면에 그릴 수 있다. methods 화면 로직 제어와 관계된 method를 정의하는 속성. 마우스 클릭 이벤트 처리와 같이 화면의 전반적인 이벤트와 화면 동작과 관련된 로직을 추가. created 뷰 인스턴스가 생성되자 마자 실행할 로직을 정의. Vue Instance 유효범위 Vuew Instance를 생성하면 HTML의 특정 범위(el) 안에서만 옵션 속성들이 적..

Frontend

[디자인 패턴] MVC, MVP, MVVC

https://beomy.tistory.com/43 MVC Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분 View : 사용자에게 보여지는 UI 부분 Controller : 사용자의 입력(Action, Request)을 받고 처리하는 부분 동작 사용자의 Action이 Controller로 들어온다. Controller는 사용자의 Action을 확인하고 Model을 업데이트한다. Controller는 Model을 나타내 줄 View를 선택한다. View는 전달받은 Model을 화면에 나타낸다. MVP Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분 View : 사용자에게 보여지는 UI 부분 Presenter : View에서 요청한 정보로 Model을 가..

Frontend/Vue.js

[VueJS] Vue.js 기본

Vue.js란? 사용자 인터페이스를 만들기 위해 사용하는 오픈 소스 Progressive Framework. 특징 Approachable (접근성) Versatile (유연성) Performant (고성능) MVVM Pattern Model(자바스크립트 객체) + View(웹페이지의 DOM) + ViewModel(Vue) 기존에는 자바스크립트로 view(DOM)에 접근하거나 수정하기 위해 jQuery와 같은 라이브러리를 이용하였다. 예시 텍스트 클릭 $('button').click(function () { $('#p1').text('대체 텍스트'); }); Vue는 view와 Model을 연결하고 자동으로 바인딩하여 양방향 통신을 가능하게 하였다. {{msg}} 클릭 new Vue({ el: "#app"..

Frontend/HTML, CSS, JS

[Javascript] 캡쳐링, 버블링

div1 div2 div3 여기 div의 영역을 클릭하면 div의 이름이 담긴 alert 창이 나오는 이벤트 핸들러가 있다고 생각해보자. div1, div2, div3에 각각 동일한 핸들러를 바인딩했고, 사용자가 div3의 영역을 눌렀을 때 alert창에는 어떤 순서로 div 이름이 출력될까? 캡쳐링과 버블링은 쉽게 말해서 어떤 한 태그에서 이벤트가 발생하였을 때 자신을 포함한 부모 태그들까지 쭉 훑으며 겹치는 이벤트의 핸들러가 있는지 없는지 검사하는 것을 의미한다. 먼저 캡쳐링은 이벤트가 발생한 요소를 포함하는 부모 태그에서부터 이벤트 근원지인 자식 태그까지 검사하는 것을 의미한다. 그 과정에서 이벤트 캡쳐링 속성의 이벤트 핸들러가 있다면 핸들러를 수행한다. 버블링은 이벤트 발생 요소부터 요소를 포함하..

Frontend/HTML, CSS, JS

[Javascript / JQuery] 이벤트 리스너

Javascript 1. 인라인 이벤트 핸들러 (HTML에서 등록) 클릭 클릭 2. 이벤트 핸들러 프로퍼티 (Javascript에서 등록) document.getElementById("div1").onclick = function() { alert('안녕하세요'); } 단, 하나의 프로퍼티에 하나의 핸들러만 바인딩 할 수 있다는 단점이 있다. (인라인 이벤트 핸들러 방식은 여러 함수를 호출할 수 있다.) 3. addEventListener 메소드 // IE 9 이전 버전 document.getElementById("div1").attachEvent("click", openAlert); // IE 9 이후 버전 document.getElementById("div1").addEventListener("cli..

Frontend/HTML, CSS, JS

[CSS] 선택자

CSS 선택자 활용 일반 선택자 선택자명 선택 범위 표현식 전체 선택자 HTML 문서 내 모든 element * {} 타입 선택자 매칭되는 element 선택 h1, h2, h3 {} 클래스 선택자 class 속성 값과 매칭되는 element 선택 .className {} ID 선택자 id 속성 값과 매칭되는 element 선택 #idName {} 복합 선택자 선택자명 선택 범위 표현식 하위 선택자 하위 element 선택 (얼마의 깊이가 차이나든 하위에 있다면 모두 선택) E1 E2 {} 자식 선택자 직속 하위 element 선택 (바로 내 밑의 깊이에서만 선택) E1 > E2 {} 인접 형제 선택자 인접 형제 관계인 element 선택 (바로 내 뒤의 형제만 선택) E1 + E2 {} 일반 형제 선택..

얌얌념념
'Frontend' 카테고리의 글 목록