전체 글
-
[Textarea] 깨끗한 채팅 Textarea 만들기Javascript/vue 2025. 3. 26. 13:55
채팅 Textarea 깨끗하게 만들기! 채팅 컴포넌트를 만들고 있는데 Textarea에 불-편한 이슈를 발견해서 수정해보았다!쭉쭉 늘어나는 Textarea 의 높이...현재 적용된 기능은Shift + Enter 로 줄바꿈Enter로 채팅 전송Auto height resize인데, Enter키를 꾹- 누르고 있으니 해당 영상과 같은 현상이 나타났다.. 적용된 코드를 살펴보니.. @input에서는 shiftKey가 true인지 false인지 알 수 없으니,@keydown 으로 shifKey 발생 여부를 onShiftKey 변수에 저장@input과 @keyup.enter 이벤트가 발생했을 때, onShiftKey가 false면 채팅 전송.으로 코드를 짰는데.. @keydown 코드 수정..
-
[Refactoring] Editable Text를 수정해보자Javascript/vue 2025. 2. 21. 13:59
기존에 구현했던 Editable Text 컴포넌트를 수정해보았다..!회고: 내가 왜이렇게 어렵게 했찌..? (어리둥절) 결과물 뭔가.. 옛날의 나는 입력받은 Text와 Input Box Text의 스타일도 다르고, 지금은 기억 안나는 또 다른 이유(가 있겟지..?)에 의해 아래의 코드를 작성했던 것 같다. {{ defaultText }} 검토해 보자면...Props로 defaultText가 들어온다면, 기본 텍스트를 보여준다.기본 텍스트 클릭 시, onClickText이벤트를 사용해서 onEdit의 값을 바꿔주고,onEdit이 true면 컴포넌트를 보여준다. ( 기본 텍스트는 숨김 )VaInput 컴포넌트의 이벤트 핸들링을 사용해서- input: ..
-
[Nuxt3] DEPRECATION WARNING: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0. 해결Nuxt3 2024. 12. 24. 15:03
DEPRECATION WARNING: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0. Nuxt3 프로젝트를 생성하는 중에 만나게된 경고.바아로 해결해보자. // nuxt.config.tsexport defaut defineNuxtConfig({ ... vite: { css: { preprocessorOptions: { scss: { api: "modern-compiler", // or 'modern' }, }, }, },}) 해당 이슈는 "현재 vite 설정값으로 적용되어 있는 legacy JS API가 앞으로 지원되지 않는다." 이..
-
JSX와 리액트 컴포넌트Javascript/react 2024. 5. 22. 11:42
index.html해당 코드로 index.jsx 모듈을 적용.화면에 보이는 HTML 코드가 없는 이유는 해당 작업을 react가 담당하기 때문index.jsximport App from "./App.jsx"해당 코드로 마크업 파일 호출. JSX 란..?Javascript Syntax Extension자바스크립트 문법 확장자... JSX 확장자자바스크립트 파일 내에서 html 마크업 코드를 작성할 수 있게함브라우저에서 사용 불가jsx 확장자를 가진 파일은 브라우저에 도달하기 전에 개발 서버에서 변환컴포넌트리액트에서 컴포넌트는 자바스크립트 함수와 같음2가지 규칙을 따라 컴포넌트 생성함수의 제목은 대문자로 시작함수에서 렌더링 가능한 값이 반환 되어야 함대체로 나중에 렌더 될 html 마크업이 반
-
Composition APIJavascript/vue 2024. 3. 12. 18:22
Composition API의 활용 Composition API 란? : 대규모 Vue 애플리케이션에서의 컴포넌트 로직을 효과적으로 구성하고 재사용할 수 있도록 만든 함수 기반 API setup 메서드를 이용한 초기화 기존 옵션 API의 생명주기와 비교하자면 beforeCreate, created 단계에서 setup() 메서드 호출 setup 메서드 내부에서 작성한 데이터나 메서드를 템플릿에서 이용하고 싶다면 객체 형태로 리턴 setup() 메서드는 2개의 인자 사용 - props : 부모 컴포넌트로부터 전달 받는 속성 - context : 기존 옵션 API 에서 this 컨텍스트가 제공하던 정보, emit( this.$emit ) 등.. 반응성을 가진 상태 데이터 - ref 기본 타입(string, n..
-
단일 파일 컴포넌트의 활용Javascript/vue 2024. 3. 12. 10:12
1. 단일 파일 컴포넌트에서 스타일 사용 2. 동적 컴포넌트 적용 3. provide와 inject 4. 비동기 컴포넌트 전역 스타일 : 다른 컴포넌트에서 동일한 CSS 클래스명을 사용한다면 충돌 발생 가능 태그 안에 작성한 스타일 main.js에서 import한 css 스타일 => 앱 전체의 공통 스타일 적용에 편리 동일한 CSS 클래스 이름이 여러 컴포넌트에서 사용되면 마지막 import된 컴포넌트의 스타일 또는 css 파일 속성 적용 범위 CSS 사용 클래스 이름을 기반으로 스타일 적용 => 클래스명이 내부의 $style 옵션에 객체로 등록되었고 객체의 속성은 작성한 CSS 클래스명 Child 등록해야 할 CSS 클래스가 여러 개라면 배열로 바인딩 동적 컴포넌트 : 화면의 동일한 위치에 여러 컴포넌..
-
Vue 인스턴스Javascript/vue 2024. 3. 6. 10:17
Vue 인스턴스와 다양한 옵션 📌 Vue (애플리케이션) 인스턴스 - Vue.createApp 메서드를 호출하여 만들어진 객체 - 전체 컴포넌트 트리는 애플리케이션 인스턴스를 마운트할 때 렌더링 - 루트 인스턴스(애플리케이션 인스턴스의 최상위 컴포넌트)는 DOM 트리에 마운트되어야 화면으로 렌더링 => mount('id') 메서드 사용 const vm = Vue.createApp({ name: 'App', data () { return {} } }).mount('#app') 📌 옵션(options) 객체 - Vue 인스턴스를 생성할 때 전달하는 속성들을 담은 객체 data 옵션 컴포넌트가 관리하고 추적해야 할 데이터를 등록할 때 사용 반드시 객체를 리턴하는 함수로 부여 data에 대한 Proxy 직접 접..
-
ES6 문법Javascript/vanilla 2024. 2. 28. 20:54
ES5와 달라진 ES6 문법 📌 기본 파라미터와 가변 파라미터 - 기본 파라미터 function addContact( name, mobile, home = "없음", address = "없음", email = "없음" ) { let str = `name = ${name}, mobile = ${mobile}, home = ${home}, address = ${address}, email = ${email}`; console.log(str); } addContact("홍길동", "010-1234-5678") // name = 홍길동, mobile = 010-1234-5678, home = 없음, address = 없음, email = 없음 addContact("이몽룡", "010-1234-5678", "03..