vue可视化工具用法

首先,window+r 打开dos命令,输入 cmd
全局安装最新的Vue CLI

npm install -g @vue/cli
# OR
yarn global add @vue/cli

你可以使用-V来查看一下刚刚安装的版本:

vue -V
# 应该会输出下面的结果
3.0.0-rc.3

在dos命令下,输入以下代码,打开vue ui可视化面板

vue ui

该命令会自动打开你的浏览器,你要确保当前目录下没有其他项目,浏览器展示的页面如下:
在这里插入图片描述
打开可视化面板后,创建项目(根据自己需求选择配置项)。
在这里插入图片描述
项目创建好后,添加相关插件及依赖
1.添加插件 plungin-element
2.添加运行依赖 axios
3.添加开发依赖 sass、node-sass、sass-loader
4.清空无用代码
5.新建组件,css文件
6.在main.js中引入全局css文件

 import './assets/css/global.css'

7.在router文件夹中index.js中引入各组件,并写好路由
/导入login组件/

import Login from '../components/login.vue'

配置路由:

const routes = [
  { path:'/',redirect:'/login',component:Login},
  { path:'/login',component: Login}
 ]

安装指定版本的依赖方法:

npm install node-sass@latest

npm install node-sass@4.13.1 --save
npm install sass-loader@7.3.1 --save

注意在sytle中 lang=“scss”,而不是lang=“sass”,否则会报错,因为我们在样式表里写的是scss语法,而不是sass语法

Can’t find Python executable “python”, you can set the PYTHON env variable.
错误原因:Node.js 在安装模块的时候报错,缺少python环境,因此需要安装python

执行如下命令:

npm install --python=python2.7
npm config set python python2.7 
推荐使用 Element Plus + Vue.js,可以结合使用拖拽库如 vue-draggable-resizable 和 vue-grid-layout。 Element Plus 是一款基于 Vue.js 2.0 的 UI 组件库,提供了丰富的组件和功能。而 vue-draggable-resizable 是一款基于 Vue.js 的可拖拽和可调整大小的组件库,可以快速实现拖拽和调整元素大小的功能。vue-grid-layout 则是一个响应式的网格布局系统,可以帮助我们更好地管理和布局页面元素。 具体实现步骤如下: 1. 首先安装 Element Plus 和 vue-draggable-resizable。 ```bash npm install element-plus vue-draggable-resizable ``` 2. 引入 Element Plus 和 vue-draggable-resizable。 ```javascript import ElementPlus from 'element-plus'; import 'element-plus/lib/theme-chalk/index.css'; import VueDraggableResizable from 'vue-draggable-resizable'; import 'vue-draggable-resizable/dist/VueDraggableResizable.css'; ``` 3. 注册 Element Plus 组件和 vue-draggable-resizable 组件。 ```javascript Vue.use(ElementPlus); Vue.component('vue-draggable-resizable', VueDraggableResizable); ``` 4. 创建一个页面布局组件,使用 vue-draggable-resizable 实现元素拖拽和调整大小。 ```html <template> <div class="page-layout"> <vue-draggable-resizable v-for="(item, index) in items" :key="index" :x="item.x" :y="item.y" :w="item.w" :h="item.h" :min-w="item.minW" :min-h="item.minH" :max-w="item.maxW" :max-h="item.maxH" :z="item.z" :isDraggable="item.isDraggable" :isResizable="item.isResizable" :onDragStart="onDragStart" :onDrag="onDrag" :onDragStop="onDragStop" :onResizeStart="onResizeStart" :onResize="onResize" :onResizeStop="onResizeStop" > <div class="inner">{{ item.content }}</div> </vue-draggable-resizable> </div> </template> <script> export default { data() { return { items: [ { x: 0, y: 0, w: 2, h: 2, minW: 1, minH: 1, maxW: 6, maxH: 6, z: 1, isDraggable: true, isResizable: true, content: 'Element 1', }, { x: 2, y: 0, w: 2, h: 4, minW: 1, minH: 1, maxW: 6, maxH: 6, z: 2, isDraggable: true, isResizable: true, content: 'Element 2', }, // ... ], }; }, methods: { onDragStart(event, ui) { console.log('onDragStart', event, ui); }, onDrag(event, ui) { console.log('onDrag', event, ui); }, onDragStop(event, ui) { console.log('onDragStop', event, ui); }, onResizeStart(event, ui) { console.log('onResizeStart', event, ui); }, onResize(event, ui) { console.log('onResize', event, ui); }, onResizeStop(event, ui) { console.log('onResizeStop', event, ui); }, }, }; </script> <style scoped> .page-layout { position: relative; height: 500px; border: 1px solid #ccc; } .inner { height: 100%; display: flex; align-items: center; justify-content: center; } </style> ``` 5. 使用 vue-grid-layout 实现响应式布局。 ```html <template> <div class="page-layout"> <vue-grid-layout :layout="layout" :rowHeight="30" :cols="12" :isDraggable="true" :isResizable="true" :verticalCompact="false" :margin="[10, 10]" @layout-update="onLayoutUpdate" > <div v-for="(item, index) in items" :key="index" :data-grid="{x: item.x, y: item.y, w: item.w, h: item.h, i: item.i}" > <div class="inner">{{ item.content }}</div> </div> </vue-grid-layout> </div> </template> <script> import VueGridLayout from 'vue-grid-layout'; export default { data() { return { layout: [ { x: 0, y: 0, w: 2, h: 2, i: '1' }, { x: 2, y: 0, w: 2, h: 4, i: '2' }, // ... ], items: [ { x: 0, y: 0, w: 2, h: 2, content: 'Element 1', }, { x: 2, y: 0, w: 2, h: 4, content: 'Element 2', }, // ... ], }; }, components: { VueGridLayout, }, methods: { onLayoutUpdate(layout) { this.layout = layout; this.items = layout.map((item) => { const { x, y, w, h } = item; const index = parseInt(item.i) - 1; return { x, y, w, h, content: `Element ${index + 1}`, }; }); }, }, }; </script> <style scoped> .page-layout { position: relative; height: 500px; border: 1px solid #ccc; } .inner { height: 100%; display: flex; align-items: center; justify-content: center; } </style> ``` 以上是基于 vue可视化拖拽页面生成工具的实现方法,可以根据自己的需求进行选择和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值