vue3+ts+vue-grid-layout 实现组件拖拽效果以及解决Vue3使用 vue-grid-layout的问题

4 篇文章 0 订阅
1 篇文章 0 订阅

1、安装(vue3安装此版本)

npm add vue-grid-layout@3.0.0-beta1

2、在main.ts里面引入并use

import { createApp, Directive } from 'vue'
import App from './App.vue'
import router from './router'
import { store, key } from './store'


import VueGridLayout from 'vue-grid-layout'//引入layout
app
  .use(router)
  .use(store, key)
  .use(VueGridLayout)

 3、ts需要在shims-vue.d.ts中声明

declare module 'vue-grid-layout'{
  import VueGridLayout from 'vue-grid-layout'

  
  export default VueGridLayout
}

4、使用--在页面文件中

import { GridLayout, GridItem } from "vue-grid-layout"
export default {
    components: {
        GridLayout,
        GridItem
    },

 5、参考官网实例以及相关属性介绍

01 - 基本 | Vue Grid Layout -️ 适用Vue.js的栅格布局系统

注意:vue3版本需要按照以上步骤使用,否则会报错:external_commonjs_vue_commonjs2_vue_root_Vue_default.a is not a constructor

效果:

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Vue3 和 TypeScript 都是非常流行的技术栈,而 Vue-Grid-Layout 是一个用于 Vue 的网格布局组件库,可以帮助我们实现灵活的网页布局。下面是使用 Vue3 和 TypeScript 集成 Vue-Grid-Layout 的例子: 首先,你需要安装 Vue-Grid-Layout: ``` npm install vue-grid-layout ``` 然后,在你的 Vue3 组件中,引入 Vue-Grid-Layout: ```vue <template> <vue-grid-layout :layout="layout" :col-num="12" :row-height="30" :is-draggable="true"> <div v-for="item in layout" :key="item.i">{{item.i}}</div> </vue-grid-layout> </template> <script lang="ts"> import { defineComponent } from 'vue'; import VueGridLayout from 'vue-grid-layout'; export default defineComponent({ components: { VueGridLayout }, data() { return { layout: [ { i: 'a', x: 0, y: 0, w: 4, h: 2 }, { i: 'b', x: 4, y: 0, w: 4, h: 4 }, { i: 'c', x: 8, y: 0, w: 4, h: 2 }, ], }; }, }); </script> ``` 在这个例子中,我们使用了 `VueGridLayout` 组件,并传入了必要的属性,包括 `layout`,用于指定每个子元素的位置和大小;`col-num`,用于指定网格系统的列数;`row-height`,用于指定每行的高度;以及 `is-draggable`,用于指定子元素是否可拖拽。 我们还可以使用 TypeScript 来增强代码的可读性和可维护性,这里使用了 `defineComponent` 函数来定义组件,并且使用了 `VueGridLayout` 类型来约束组件中的 `VueGridLayout` 实例。 以上就是使用 Vue3 和 TypeScript 集成 Vue-Grid-Layout 的简单例子,你可以根据自己的需求进行扩展和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值