728x90
반응형
- [ 언어·프레임워크/Vue.js ][Vue.js] watch로 두개 이상의 값 변경 감지2024-09-25 13:13:43두 개 이상의 값 변경 감지둘 이상의 값에 대한 변경을 감지하여 하나의 값이라도 변경이 일어나면 특정 메서드를 실행하는 코드가 필요했다. 아래 코드는 computed에 임의로 정의한 data1(), data2()의 반환 값을 watch에서 감지하여 둘 중 값이 하나라도 변경되면 동일한 handleUpdate() 함수가 호출되도록 작성한 것이다. 주의할 점은 감시하는 값이 객체인 경우에는 "deep" 속성을 추가해야 변경을 감지할 수 있다.computed: { data1() { return this.$store.state.data1; // vuex 상태 값1 }, data2() { return this.$store.state.data2; // vuex 상태 값2 }},watch: { d..
- [ 언어·프레임워크/Vue.js ][Vue.js] Uncaught (in promise) TypeError: Cannot read properties of undefined (reading '블라블라')2022-12-29 10:58:18computed에 실시간으로 변경되는 데이터를 가공하는 코드를 작성하던 중 자주 만나게 되는 에러였다. 호출한 배열의 값이 없는 상태에서 특정 인덱스를 지정한 경우에 발생했다. 웹 애플리케이션이 작동하지 않는 것은 아니나 콘솔창이 계속 이런 에러를 뱉어 내지 여간 거슬리지 않을 수 없다. 조건문을 사용해 해결했는데 방법은 다음과 같다. if (gidManhole.length === 0) { return } gidManhole는 진행 중인 프로젝트에서 사용한 배열명이다. gidManhole 배열에 값이 없으면 아얘 다음 코드로 진행하지 못하도록 처리한 것이다.
- [ 프로젝트/[팀] 겸상 - 혼밥 매칭 ][팀] 겸상 - Vue.js에서 배열에 배열을 대입했는데 서로 바인딩된 것 처럼 작동!? computed와 Spread operator를 이용해 해결!2022-07-13 09:55:43숟갈을 선택하고 빼는 화면을 구현해야 하는 데 이미 선택했던 숟갈을 취소하는 기능이 포함되어야 한다. 이게 상당히 상그러운 일이었다. 이 기능을 구현하기 위해서 "지금 선택할 숟갈"과 "이미 확정되었던 숟갈"을 각각 구분하여 관리할 필요가 있었다. 그래서 "selectedSpoons, fixedSpoons"라는 배열 프로퍼티를 각각 두었다. 화면이 최초 렌더링 될 때 이미 확정되었던 숟갈 요소를 selectedSpoons에 넣는 과정을 두었다(this.selectedSpoons = this.fixedSpoons;). 그 이유는 [그림 1]과 같이 "함께할 숟갈"에 표시하고 정해진 인원수 관리(3인)를 용이하게 하기 위해서였다. 그런데 여기에서 문제가 발생했다. data() { return { ... se..
- [ 영광의 시대!/2022 개발자의 품격 부트캠프 1기 ][개발자의품격][부트캠프][1기][19차시] Vue.js #4 | extra2022-03-07 16:11:10extra v-if HTML DOM 요소를 보이기/숨기기 위해 실무에서는 v-if 문법을 주로 사용한다. 사용자의 권한에 따라 부여하는 기능을 달리할 때 사용할 수 있다. if 문은 순차적으로 비교하므로 "일반 사용자 > 매니저 > 관리자" 순으로 사용자가 많으므로 이를 감안하여 순서를 설계하는 것이 유리하다. 조회 생성 조회 생성 조회 삭제 v-show v-if는 [그림 2]와 같이 HTML DOM 요소를 생성/삭제한다. DOM 트리를 리페인팅하기 때문에 리소스를 많이 사용한다. 반면 v-show는 [그림 3]과 같이 style에서 보이기/감추기 처리를 한다. 개발자는 사용자의 UX를 항상 고려해야 한다. 이러한 태도는 코드를 개선하는 것보다 더 중요하다. 인공지능 블록체인 사물인터넷 기타 comput..
728x90
반응형