Element Plus의 el-form은 사용자가 데이터를 입력하고 제출할 수 있는 폼을 생성하는 데 사용되는 컴포넌트입니다. 이는 내장된 검증 규칙과 메서드를 제공하여 폼 검증을 보다 쉽게 만들어줍니다.
el-form 컴포넌트를 사용하면 폼 컨트롤을 그룹화하고, 제출 전에 데이터가 기대한 형식과 요구 사항을 충족하는지 확인할 수 있습니다. 주요 특징으로는 다음과 같은 것이 있습니다:
- 내장된 검증 규칙과 사용자 정의 검증 함수 지원.
model속성을 설정하여 폼 데이터를 바인딩할 수 있음.- 검증 전후의 콜백 함수 제공.
- 다양한 표준 폼 컨트롤(텍스트 필드, 드롭다운, 라디오 버튼 등) 포함.
기능적으로는 ElementUI와 유사하지만 일부 세부 사항에서는 차이가 있습니다.
아래는 Element Plus와 ElementUI 간의 주요 차이점입니다:
- 컴포넌트 인터페이스: ElementUI에서는
Vue.use(ElementUI)방식으로 컴포넌트를 로드했지만, Element Plus에서는import문을 통해 개별적으로 가져옵니다. 예를 들어:
import { ElForm } from 'element-plus';
2. **스타일**: Element Plus는 새로운 기본 테마와 스타일을 사용하며, ElementUI와 다르게 구성됩니다. 필요에 따라 공급되는 테마 또는 사용자 정의 테마를 적용할 수 있습니다.
3. **폼 검증**: Element Plus에서는 `this.$refs.form.validate()`로 폼 검증을 수행하며, ElementUI에서는 `(valid) => {}` 콜백을 명시적으로 처리해야 합니다. Element Plus에서는 콜백이 선택적입니다.
4. **폼 컨트롤**: Element Plus는 추가적인 컨트롤(`TimePicker`, `DatePicker`, `TreeSelect` 등)을 제공합니다. 반면 ElementUI에서는 이러한 요소들이 별도의 컴포넌트(`el-date-picker`, `el-time-picker` 등)로 제공됩니다.
5. **언어 번역**: Element Plus는 더 많은 언어를 지원하며, 사용자 정의 번역 객체를 통해 확장을 가능하게 합니다. ElementUI는 기본 언어와 몇 가지 언어 패키지만 제공됩니다.
`el-form`의 일반적인 속성과 메서드는 다음과 같습니다:
### 주요 속성
- `model`: 폼 데이터를 바인딩하는 데 사용되며, `v-model`을 통해 폼 요소와 연결할 수 있습니다.
- `rules`: 폼 검증 규칙을 설정합니다. 각 규칙은 배열 내의 객체로 표현됩니다.
- `label-width`: 폼 요소의 레이블 너비를 지정합니다.
- `label-position`: 레이블 위치를 설정하며, `'right'`, `'left'`, `'top'`, `'bottom'` 중 하나를 선택할 수 있습니다.
- `inline`: 행 내부 폼 여부를 설정합니다.
- `disabled`: 폼을 비활성화할지 여부를 결정합니다.
### 주요 메서드
- `validate`: 폼 전체를 검증하며, 성공 시 `true`를 실패 시 `false`를 반환합니다.
- `resetFields`: 폼 데이터 및 검증 상태를 초기화합니다.
- `clearValidate`: 검증 상태를 지웁니다.
- `validateField`: 특정 폼 요소의 검증을 트리거합니다.
- `submit`: 폼 데이터를 제출하며, 성공 또는 실패 시 호출될 콜백을 지정합니다.
아래는 간단한 `el-form` 예제로, 하나의 입력 필드와 제출 버튼을 포함합니다.