低代码开发之vue.draggable的使用(初阶:组件化拖拽生成简单页面)

这篇具有很好参考价值的文章主要介绍了低代码开发之vue.draggable的使用(初阶:组件化拖拽生成简单页面)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果展示

vue组件拖拽自定义界面,前端,低代码,vue.js

vue.draggable 安装 && 使用
//依赖下载
npm i -S vuedraggable 
或
 yarn add vuedraggable
//导入draggable组件
 import draggable from 'vuedraggable' 
 //注册draggable组件 
components: { draggable },
<!--使用draggable组件 v-model绑定数组-->
 <draggable v-model="myArray"  @start="onStart" @end="onEnd">
    <transition-group>
     <div class="item" v-for="item in myArray" :key="item.id">{{item.name}}</div>
    </transition-group>
</draggable>
  • vue.draggable 相关属性
    vue组件拖拽自定义界面,前端,低代码,vue.js

  • 事件
    vue组件拖拽自定义界面,前端,低代码,vue.js文章来源地址https://www.toymoban.com/news/detail-826441.html

Demo完整代码
<template>
	<div class="page-edit">
		<!-- 左侧业务组件区 -->
		<div class="left-components">
			<div class="title-bar">业务组件</div>
			<draggable
				v-model="componentsList"
				draggable=".li"
				v-bind="dragOptions"
				:options="{ sort: false, group: { name: 'field', pull: 'clone', put: false } }"
			>
				<div v-for="d in componentsList" :key="d.type" class="li">{{ d.name }}</div>
				<a-button class="save" @click="save">保存配置</a-button>
			</draggable>
		</div>

		<!-- 右侧内容生成区 -->
		<div class="right-content">
			<div class="title-bar">页面内容区</div>
			<draggable class="content" group="field" v-bind="dragOptions" :list="contentList" @change="toChange">
				<div v-for="(item, index) in contentList" :key="'r' + index">
					<div class="item">
						{{ item.name }}
						<div class="delbtn" @click="del(index)"></div>
					</div>
				</div>
			</draggable>
		</div>
	</div>
</template>

<script>
import draggable from "vuedraggable";

export default {
	name: "PageEdit",
	components: {
		draggable
	},

	data() {
		return {
			dragOptions: {
				animation: 500,
				filter: ".disabled" //class为disabled时不可拖拽
			},
			componentsList: [
				{ type: "top", name: "信息条组件" },
				{ type: "income", name: "收益指标" },
				{ type: "electricity", name: "电量指标" },
				{ type: "comprehensive", name: "系统效率" },
				{ type: "warning", name: "告警指标" }
			],
			contentList: [{ type: "top", name: "信息条组件" }]
		};
	},
	watch: {},
	created() {
		if (JSON.parse(localStorage.getItem("contentList"))) {
			this.contentList = JSON.parse(localStorage.getItem("contentList"));
		}
	},
	methods: {
		toChange(e) {
			console.log(e);
			if (e.added) {
				console.log(this.contentList);
			}
		},
		del(idx) {
			this.contentList.splice(idx, 1);
		},
		save() {
			localStorage.setItem("contentList", JSON.stringify(this.contentList));
			this.$message.success("保存成功");
		}
	}
};
</script>

<style lang="scss">
.page {
	&-edit {
		padding: 16px;
		display: flex;
		overflow: hidden;
		.title-bar {
			padding: 12px;
			font-size: 18px;
			font-weight: bold;
			background: #091d48;
			margin-bottom: 16px;
		}
		.left-components {
			width: 15%;
			height: calc(100vh - 100px);
			border: solid 1px #4d617f;
			overflow: auto;
			.li {
				background: #4d617f;
				display: flex;
				align-items: center;
				justify-content: center;
				margin: 10px 10px;
				padding: 12px 0;
			}
			.save {
				position: absolute;
				top: 25px;
				right: 30px;
				z-index: 999;
			}
		}
		.right-content {
			width: 85%;
			height: calc(100vh - 100px);
			border: solid 1px #4d617f;
			overflow: hidden;
		}
		.content {
			width: 100%;
			height: calc(100vh - 100px);
			overflow-y: auto;
			.item {
				height: 80px;
				background: #4d617f;
				margin: 0 12px 12px 12px;
				padding: 12px;
				position: relative;
			}
		}
		.delbtn {
			position: absolute;
			right: 4px;
			top: 0px;
			font-size: 12px;
			line-height: 24px;
			cursor: pointer;
		}
	}
}
</style>

更多详见draggable官网=>https://www.itxst.com/vue-draggable/tutorial.html

到了这里,关于低代码开发之vue.draggable的使用(初阶:组件化拖拽生成简单页面)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Vue】Vite 组件化开发

    1. 什么是组件化开发 组件化开发指的是:根据封装的思想,把页面上可重用的部分封装为组件,从而方便项目的开发和维护。 例如:https://gitee.com/vdpadmin/variant-form 所展示的效果,就契合了组件化开发的思想。用户可以通过拖拽组件的方式,快速生成一个页面的布局结构。

    2024年02月10日
    浏览(34)
  • Android组件化架构开发--为什么要使用组件化?组件分层?组件路由的简单实现。

    1.1 单工程项目结构 一般我们都是一个业务建一个包 缺点: 各种业务代码混杂在同一个模块里,开发人员在开发、调测过程的效率越来越低,定位某个业务问题,需要在多个业务代码混合的模块中寻找和跳转。 需要了解各个业务的功能,避免代码的改动影响其它业务的功能

    2024年02月10日
    浏览(52)
  • 前端Vue入门-day03-用Vue实现工程化、组件化开发

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 生命周期 Vue 生命周期 和 生命周期的四个阶段  Vue 生命周期函数(钩子函数) 案例-create的应用 案例-mounted的应用 工程化开发 脚手架 Vue CLI 开发 Vue 的两种方式 基本介

    2024年02月15日
    浏览(38)
  • 【vue2第九章】组件化开发和根组件以及style上的scoped作用

    组件化开发和根组件 什么是组件化开发? 一个页面可以拆分为多个组件,每个组件有自己的 样式,结构,行为 ,组件化开发的好处就是,便于维护,利于重复利用,提升开发的效率。 便于维护 :页面中块出了问题,可以直接去找到这个组件,修改组件的样式逻辑结构。

    2024年02月10日
    浏览(33)
  • Vue(组件化编程:非单文件组件、单文件组件)

    传统组件编写:不同的HTML引入不同的样式和行为文件 组件方式编写:组件单独, 复用率高(前提组件拆分十分细致)  理解为封装行为:html,css,js封装在一个文件中 解释模块化和组件化的区别: 组件化 :css,js,html三件套使用在同一部分的代码封装在一个组件中 模块化

    2024年02月01日
    浏览(45)
  • 二、Vue组件化编程

    Vue 中使用组件的三大步骤: 定义组件(创建组件) 注册组件 使用组件(写组件标签) 如何定义一个组件? 使用 Vue.extend(options) 创建,其中 options 和 new Vue(options) 时传入的那个 options 几乎一样,但也有点区别; 区别如下: el 不要写,为什么? ——— 最终所有的组件都要经过一

    2024年02月22日
    浏览(36)
  • VUE3 --->组件化

    目录 vue-cli 1、基于 vue ui 创建 vue 项目  组件库 1.vue 组件库 2.vue 组件库和 bootstrap 的区别 3. 最常用的 vue 组件库 4. Element UI axios 拦截器 1. 回顾:在 vue3 的项目中全局配置 axios 2. 在 vue2 的项目中全局配置 axios 3、拦截器 4. 配置请求拦截器 5、配置响应拦截器 proxy 跨域代理 1. 回

    2024年02月15日
    浏览(30)
  • 通用vue组件化登录页面

    1.首先建立一个login文件夹,在里面建立对应的login.vue文件 2.设置登录页面的背景图,在App.vue文件中使用router-view进行展示登录组件 3.先给App.vue的div元素设置高度100%,之后在login.vue里面去设置背景图 这里注意怎么使login组件垂直水平居中的样式 1.首先建立一个cpns的文件夹,里

    2024年02月09日
    浏览(31)
  • 组件化开发之如何封装组件-react

    组件是构建用户界面的基本单元,它是一个独立的、可重用的、可组合的代码单元,用于表示UI的一部分。 人话:当谈论组件时,就像在搭积木一样,每个组件都是一个 独立的、可以重复使用 的代码块,用来构建网页或应用的各个部分。比如界面的布局,像按钮、文本输入

    2024年02月11日
    浏览(51)
  • 小程序组件化开发

        随着小程序的普及,越来越多的开发者开始使用小程序进行开发,而小程序的组件化开发已经成为了一种标配的开发模式。本文将深入介绍小程序组件化开发的相关知识,包括组件的定义、生命周期、通信和使用等方面,帮助大家更好地理解和使用小程序的组件化开发

    2023年04月20日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包