Popover

Popover (팝오버)

호버 시 표시할 내용을 content 속성으로 설정하는 컴포넌트예요.

출처: 문서

본문

위치 (Placement)

Popover는 9가지 위치를 가져요. 호버 시 표시 내용을 설정하려면 content 속성을 사용해요. placement 속성이 Popover의 위치를 결정해요. 그 값은 [orientation]-[alignment] 형식으로, 네 가지 방향 top, left, right, bottom과 세 가지 정렬 start, end, null이 있고, 기본 정렬은 null이에요. 예를 들어 placement="left-end"를 보면, Popover는 마우스를 올린 요소의 왼쪽에 표시되고 Popover의 아래쪽이 요소의 아래쪽과 정렬돼요.

.popover-base-box {
  width: 600px;
}

.popover-base-box .row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.popover-base-box .center {
  justify-content: center;
}

기본 사용법 (Basic usage)

Popover는 ElTooltip 기반으로 만들어졌어요. 그래서 일부 중복 속성은 Tooltip의 문서를 참조하세요. trigger 속성은 popover가 어떻게 트리거되는지 정의해요: hover, click, focus, contextmenu. 수동으로 제어하고 싶다면 :visible을 설정하면 돼요.

가상 트리거 (Virtual triggering)

Tooltip처럼 Popover는 가상 요소로 트리거될 수 있어요. 트리거 요소와 내용 요소를 분리해야 하는 사용 사례라면 이 메커니즘을 사용해야 해요. 보통 #reference로 트리거 요소를 배치하는데, virtual-ref API로 트리거 요소를 원하는 곳 어디에나 배치할 수 있어요. 다만 트리거 요소는 마우스와 키보드 이벤트를 받는 요소여야 한다는 점에 주의하세요.

WARNING v-popover는 곧 deprecated될 예정이에요. 대신 virtual-ref를 사용하세요.

풍부한 내용 (Rich content)

팝오버 안에 다른 컴포넌트/요소를 중첩할 수 있어요. 다음은 중첩 테이블의 예제예요. content 속성을 default 슬롯으로 대체해요.

const gridData = [
  {
    date: '2016-05-02',
    name: 'Jack',
    address: 'New York City',
  },
  {
    date: '2016-05-04',
    name: 'Jack',
    address: 'New York City',
  },
  {
    date: '2016-05-01',
    name: 'Jack',
    address: 'New York City',
  },
  {
    date: '2016-05-03',
    name: 'Jack',
    address: 'New York City',
  },
]

중첩 작업 (Nested operation)

물론 다른 작업을 중첩할 수도 있어요. dialog를 사용하는 것보다 가볍죠.

import { ref } from 'vue'

const visible = ref(false)

디렉티브 (Directive)

popover를 디렉티브 방식으로도 사용할 수 있지만, 이것은 애플리케이션을 복잡하게 만들기 때문에 더 이상 권장하지 않아요. 자세한 내용은 가상 트리거를 참조하세요.

API

Attributes

Name Description Type Default
trigger popover가 트리거되는 방식, 제어 모드에서는 유효하지 않아요 enum / array hover
trigger-keys 2.9.8 마우스로 트리거 요소에 포커스를 맞추면 키보드 코드 집합을 정의해 키보드로 popover 표시를 제어할 수 있어요. 제어 모드에서는 유효하지 않아요 Array ['Enter','Space']
title popover 제목 string —
effect Tooltip 테마, 내장 테마: dark / light enum / string light
content popover 내용, default 슬롯으로 대체할 수 있어요 string ''
width popover 너비 string / number 150
placement popover 위치 enum bottom
disabled Popover 비활성화 여부 boolean false
visible / v-model:visible popover 표시 여부 boolean / null null
offset popover 오프셋, Popover는 Tooltip 기반이라 offset은 undefined지만 Tooltip의 offset은 12예요 number undefined
transition popover 전환 애니메이션, 기본은 el-fade-in-linear string —
show-arrow tooltip 화살표 표시 여부. 자세한 내용은 ElPopper 참조 boolean true
popper-options popper.js 매개변수 object {modifiers: [{name: 'computeStyles',options: {gpuAcceleration: false}}]}
popper-class popover의 커스텀 클래스 이름 string —
popper-style popover의 커스텀 스타일 string / object —
show-after 나타나는 지연 시간(밀리초), 제어 모드에서는 유효하지 않아요 number 0
hide-after 사라지는 지연 시간(밀리초), 제어 모드에서는 유효하지 않아요 number 200
auto-close tooltip을 숨기기까지의 타임아웃(밀리초), 제어 모드에서는 유효하지 않아요 number 0
tabindex Popover의 tabindex number / string 0
teleported popover 드롭다운을 body로 텔레포트할지 여부 boolean true
append-to 2.9.10 popover CONTENT가 붙는 요소 CSSSelector / HTMLElement body
persistent popover가 비활성이고 persistent가 false일 때 popover가 파괴됨 boolean true
virtual-triggering 가상 트리거 활성화 여부 boolean —
virtual-ref popover가 붙는 참조 요소 HTMLElement —
tooltip Tooltip의 모든 속성 상속 — —

Slots

Name Description Type
default popover 내용, 2.13.4 이상 버전은 hide 매개변수를 받을 수 있어요 object
reference popover를 트리거하는 HTML 요소, 단일 루트 요소만 허용 -

Events

Name Description Type
show popover가 표시될 때 트리거 Function
before-enter 진입 전환 전에 트리거 Function
after-enter 진입 전환이 끝날 때 트리거 Function
hide popover가 숨겨질 때 트리거 Function
before-leave 이탈 전환 전에 트리거 Function
after-leave 이탈 전환이 끝날 때 트리거 Function

Exposes

Name Description Type
hide popover 숨기기 Function

더 알아보기 (Learn more)