响应破折号是Vue.js的布局库,可在应用程序上创建响应式,可拖动且可调整大小的网格系统。
v0.5.0(08/19/2020)
v0.4.3(07/18/2020)
v0.4.2(06/24/2020)
v0.4.00(06/01/2020)
# NPM
$ npm install vue-responsive-dash --save
1.安装并导入vue-active-dash。
import { Dashboard, DashLayout, DashItem } from "vue-responsive-dash";
2.在模板中创建网格布局。
<template>
<div id="app">
<dashboard :id="'dashExample'">
<dash-layout v-for="layout in dlayouts" v-bind="layout" :debug="true" :key="layout.breakpoint">
<dash-item v-for="item in layout.items" v-bind.sync="item" :key="item.id">
<div class="content"></div>
<template v-slot:resizeBottomRight>
<svg
width="1em"
height="1em"
viewBox="0 0 20 20"
focusable="false"
role="img"
alt="icon"
xmlns="http://www.w3.org/2000/svg"
fill="#42b983"
class="b-icon bi bi-arrow-down-right mx-auto"
data-v-11c9e491
>
<g data-v-11c9e491>
<path
fill-rule="evenodd"
d="M14 9.5a.5.5 0 01.5.5v5a.5.5 0 01-.5.5H9a.5.5 0 010-1h4.5V10a.5.5 0 01.5-.5z"
clip-rule="evenodd"
></path>
<path
fill-rule="evenodd"
d="M4.646 5.646a.5.5 0 01.708 0l9 9a.5.5 0 01-.708.708l-9-9a.5.5 0 010-.708z"
clip-rule="evenodd"
></path>
</g>
</svg>
</template>
</dash-item>
</dash-layout>
</dashboard>
</div>
</template>
3.注册组件并配置布局,如下所示:
export default {
name: "App",
components: {
Dashboard,
DashLayout,
DashItem
},
data() {
return {
dlayouts: [
{
breakpoint: "xl",
numberOfCols: 12,
items: [
{
id: "1",
x: 0,
y: 0,
width: 1,
height: 1
},
{ id: "2", x: 1, y: 0, width: 2, height: 1 },
{ id: "3", x: 0, y: 1, width: 2, height: 1 },
{ id: "4", x: 3, y: 0, width: 2, height: 2 },
{ id: "5", x: 5, y: 0, width: 1, height: 2 },
{ id: "6", x: 6, y: 0, width: 2, height: 1 },
{ id: "7", x: 7, y: 1, width: 5, height: 1 }
]
},
{
breakpoint: "lg",
breakpointWidth: 1200,
numberOfCols: 10,
items: [
{
id: "1",
x: 0,
y: 0,
width: 1,
height: 1
},
{ id: "2", x: 1, y: 0, width: 2, height: 1 },
{ id: "3", x: 0, y: 1, width: 2, height: 1 },
{ id: "4", x: 3, y: 0, width: 2, height: 2 },
{ id: "5", x: 5, y: 0, width: 1, height: 2 },
{ id: "6", x: 6, y: 0, width: 2, height: 1 },
{ id: "7", x: 7, y: 1, width: 3, height: 1 }
]
},
{
breakpoint: "md",
breakpointWidth: 996,
numberOfCols: 8,
items: [
{
id: "1",
x: 0,
y: 0,
width: 1,
height: 1
},
{ id: "2", x: 1, y: 0, width: 2, height: 1 },
{ id: "3", x: 0, y: 1, width: 2, height: 1 },
{ id: "4", x: 3, y: 0, width: 2, height: 2 },
{ id: "5", x: 5, y: 0, width: 1, height: 2 },
{ id: "6", x: 6, y: 0, width: 2, height: 1 },
{ id: "7", x: 7, y: 1, width: 1, height: 1 }
]
},
{
breakpoint: "sm",
breakpointWidth: 768,
numberOfCols: 4,
items: [
{
id: "1",
x: 0,
y: 0,
width: 1,
height: 1
},
{ id: "2", x: 1, y: 0, width: 2, height: 1 },
{ id: "3", x: 0, y: 1, width: 2, height: 1 },
{ id: "4", x: 3, y: 0, width: 1, height: 2 },
{ id: "5", x: 2, y: 1, width: 1, height: 1 }
]
},
{
breakpoint: "xs",
breakpointWidth: 480,
numberOfCols: 2,
items: [
{
id: "1",
x: 0,
y: 0,
width: 1,
height: 1
},
{ id: "2", x: 1, y: 0, width: 1, height: 1 },
{ id: "3", x: 0, y: 1, width: 2, height: 1 }
]
},
{
breakpoint: "xxs",
breakpointWidth: 0,
numberOfCols: 1,
items: [
{
id: "1",
x: 0,
y: 0,
width: 1,
height: 1
},
{ id: "2", x: 0, y: 1, width: 1, height: 1 }
]
}
]
};
}
};