> 웹 프론트엔드 > View.js > Vue에서 드래그 가능한 레이아웃을 구현하는 방법은 무엇입니까?

Vue에서 드래그 가능한 레이아웃을 구현하는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-06-25 08:48:33
원래의
7880명이 탐색했습니다.

웹 프런트 엔드 기술의 지속적인 개발로 인해 점점 더 많은 개발자가 SPA(단일 페이지 애플리케이션) 아키텍처를 사용하여 애플리케이션을 구축하기 시작했습니다. 현재 가장 인기 있는 웹 프런트엔드 프레임워크 중 하나인 Vue는 SPA 애플리케이션을 보다 쉽게 ​​구축할 수 있는 풍부한 구성 요소 라이브러리와 도구를 제공합니다. Vue는 드래그 가능한 레이아웃 구현과 관련하여 몇 가지 편리한 솔루션도 제공합니다.

1. Vue-Grid-Layout 사용

Vue-Grid-Layout은 Vue 기반의 반응형 그리드 레이아웃 시스템입니다. 모바일 장치에서 제스처 드래그 및 확대/축소를 지원하면서 드래그 및 크기 조정이 가능한 그리드 레이아웃을 쉽게 구현할 수 있는 구성 요소 세트를 제공합니다. Vue-Grid-Layout 사용은 매우 간단합니다. 먼저 프로젝트에 도입해야 합니다.

npm install vue-grid-layout -S
로그인 후 복사

그런 다음 아래와 같이 Vue 구성 요소에서 사용합니다.

<template>
  <vue-grid-layout :layout="layout" :col-num="12" :row-height="30" :is-draggable="true"
                   :is-resizable="true" :vertical-compact="false" :margin="[10, 10]"
                   :use-css-transforms="true" :auto-size="true">
    <vue-grid-item v-for="item in layout" :key="item.i" :x="item.x" :y="item.y" :w="item.w"
                   :h="item.h">
      <div class="grid-item-content">{{ item.i }}</div>
    </vue-grid-item>
  </vue-grid-layout>
</template>
<script>
import { VueGridLayout, VueGridItem } from 'vue-grid-layout';

export default {
  components: { VueGridLayout, VueGridItem },
  data() {
    return {
      layout: [
        { i: 'item1', x: 0, y: 0, w: 1, h: 2 },
        { i: 'item2', x: 1, y: 0, w: 1, h: 2 },
        { i: 'item3', x: 2, y: 0, w: 1, h: 2 },
        { i: 'item4', x: 3, y: 0, w: 1, h: 2 },
      ]
    }
  },
}
</script>
로그인 후 복사

위 코드에서 VueGridLayout 구성 요소를 정의하고 추가합니다. 레이아웃 배열은 해당 레이아웃 속성에 바인딩됩니다. 여기서 각 항목은 ID(i), x, y 좌표, 너비(w) 및 높이(h)를 포함하여 그리드 항목을 나타냅니다. 또한 col-num 속성을 설정하여 그리드의 열 수를 지정하고, row-height 속성을 사용하여 각 행의 높이를 설정하고, is-draggable 및 is-resizing 속성을 설정하여 그리드 항목을 드래그할 수 있는지 여부를 지정할 수 있습니다. 각각 크기를 조정할 수 있습니다. Vue-Grid-Layout은 필요에 따라 구성할 수 있는 다양한 사용자 정의 옵션도 제공합니다.

2. Vue-Draggable 사용

Vue-Draggable은 또 다른 인기 있는 Vue 플러그인으로, 드래그 앤 드롭 정렬, 드래그 앤 드롭으로 상위 항목 변경, 등. Trello와 유사한 드래그 앤 드롭 작업 패널을 구현하는 데 매우 적합합니다. Vue-Draggable을 사용하는 것도 매우 간단합니다. 먼저 소개해야 합니다.

npm install vuedraggable --save
로그인 후 복사

그런 다음 아래와 같이 Vue 구성 요소에서 사용합니다.

<template>
  <draggable v-model="list" :options="dragOptions">
    <div v-for="(item, index) in list" :key="item.id">
      <h3 class="title">{{ item.title }}</h3>
      <p class="content">{{ item.content }}</p>
    </div>
  </draggable>
</template>
<script>
  import draggable from 'vuedraggable';

  export default {
    components: { draggable },
    data() {
      return {
        list: [
          { id: 1, title: 'Title 1', content: 'Content 1' },
          { id: 2, title: 'Title 2', content: 'Content 2' },
          { id: 3, title: 'Title 3', content: 'Content 3' },
          { id: 4, title: 'Title 4', content: 'Content 4' },
          { id: 5, title: 'Title 5', content: 'Content 5' },
        ],
        dragOptions: {
          group: {
            name: 'task',
            pull: 'clone',
            put: false
          },
          sort: false,
          animation: 150,
        },
      }
    },
  }
</script>
로그인 후 복사

위 코드에서는 드래그 가능한 구성 요소를 정의하고 목록 배열을 바인딩합니다. v-model에서 각 항목은 ID, 제목 및 콘텐츠를 포함한 목록 항목을 나타냅니다. 또한 options 속성을 통해 드래그 앤 드롭 그룹화를 설정하는 group 속성, 정렬 활성화 여부를 설정하는 sort 속성, 애니메이션 지속 시간을 설정하는 animation 속성 등 다양한 사용자 정의 옵션을 설정할 수 있습니다.

요약

Vue를 사용하여 드래그 가능한 레이아웃을 구현하는 것이 일반적입니다. Vue-Grid-Layout과 Vue-Draggable은 두 가지 좋은 솔루션입니다. Vue-Grid-Layout은 그리드 레이아웃에 적합하며 드래그 가능하고 크기 조정이 가능한 그리드 레이아웃을 구현할 수 있으며 다양하고 복잡한 대화형 애플리케이션을 구축하는 데 적합합니다. Vue-Draggable은 주로 드래그 앤 드롭 목록에 사용되며, Trello와 같은 드래그 앤 드롭 작업 패널을 구현하는 데 매우 효과적입니다. 올바른 솔루션을 선택하는 것은 특정 사용 사례에 따라 달라지며, 둘 다 사용이 간단하고 유연합니다.

위 내용은 Vue에서 드래그 가능한 레이아웃을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿