前端开发者的福音!通过拖拽就可生成Vue代码的平台来了!

Vue组件代码生成平台

Vue组件代码生成平台是一款面向Vue开发者的拖拽式组件代码生成工具。通过它可以快速搭建Vue组件的代码骨架结构。开发者可在此基础上进行二次开发。

目前该平台非常适合快速搭建一个常见的数据查询组件,仅需要拖三个组件进来即可完成,例如:

在这里插入图片描述
那么它这么牛逼,地址是什么呢?请戳: Low Code Generator

界面及操作介绍

主界面主要分为三块区域:

  1. 组件库区域,组件库区域主要用于选择组件元素。
  2. 组件操作预览区域,该区域主要编辑组件元素的位置与属性。
  3. 实时代码生成区域,当组件元素被拖入到预览区域时,该区域会实时生成对应的代码。

在这里插入图片描述

一个简单组件

在熟悉了整个界面的布局之后,我们尝试来生成一个最简单的组件。

首先,将鼠标指针移动到组件元素的上方,此时该组件元素会有一个浅色的效果。

在这里插入图片描述

接着,拖动该组件元素至组件操作预览区域。

在这里插入图片描述

然后放下,此时代码生成区域将会生成对应的代码。

在这里插入图片描述

接下来我们选中刚刚拖入的组件元素,此时右侧会滑出对应的属性编辑框。在这里我们添加一个@click: onClick属性以及class: container的属性,再点击保存,对应的代码便生成了。

在这里插入图片描述

注意: 这时所生成的代码除了在html中有了对应的属性之外,还会在js中生成对应的onClick方法以及在css中生成对应的container类。

完整代码:

<template><div><div div-lc-mark @click="onClick" class="container"></div></div>
</template><script>export default {data() {return {// 在此自动生成};},beforeCreate() {},created() {},beforeMount() {},mounted() {},beforeUpdate() {},updated() {},destoried() {},methods: {// 在此自动生成request() {// 网络请求,可选},onClick(){}},watch: {},computed: {},fillter: {},};
</script><style scoped>/*  在此自动生成 */.container{}
</style>

undefined属性代表这些元素里面的值。对于div和span等基础元素来说,如果编辑其undefined属性,则可以在预览区域以及代码生成区域看到实时效果。而对于复合组件来说,则只能看到代码区域的变化。

目前组件代码生成平台支持解析部分v-bind、v-on指令,解析成功后可以直接生成对应的data或者method。另外也支持class类名的解析。如果有一个class的属性,则自动会生成对应的class。

一个复合组件

接下来我们将演示如何由基础组件元素搭建一个复合组件。

最开始我们还是先拖入一个div元素。然后再拖入一个span,这时这个span可以被放置在div的上方。此时在div上方会有一条绿色的辅助线。

在这里插入图片描述

然后释放,span就会被放置到div的前面。

接来下我们再拖入一个a标签,这次我们选择将a标签放置到div下面,同样的会在div的下方出现一条绿色的辅助线。

在这里插入图片描述

除了可以将组件元素放置到另一个组件元素的上面下面之外,也支持被放置在它的内部,例如:

在这里插入图片描述

说明: 在放置组件时可能会遇到像Div这样的块级元素也可能遇到像span这样的行内元素,那么如果是div,则只能拖入到它的上方或者下方,如果span,则可以拖入到它的左方或者右方。

此时,我们所生成的代码为:

<template><div><span> This is span. </span><div div-lc-mark><abbr title="People's Republic of China">PRC</abbr></div><a> W3School </a></div>
</template><script>export default {data() {return {// 在此自动生成};},beforeCreate() {},created() {},beforeMount() {},mounted() {},beforeUpdate() {},updated() {},destoried() {},methods: {// 在此自动生成request() {// 网络请求,可选},},watch: {},computed: {},fillter: {},};
</script><style scoped>/*  在此自动生成 */
</style>

代码的导出

当把代码拼接完成之后,可以通过右下方的两个按钮将代码拷贝至剪贴板,也支持直接下载到本地,建议直接下载到项目的目录中。

在这里插入图片描述

预览模式

平台支持预览竖屏样式,默认的宽度为375px,点击开关便可切换至竖屏模式:

在这里插入图片描述

对于组件元素的集成

平台目前集成了以下几类组件元素,并做了分类:

  • Html原生元素
  • Element大部分常见组件
  • Vant大部分常见组件
  • iView少部分组件

什么样的组件不能集成

  • 组件中有css属性为position: fixed; 例如vant的Tabbar、SubmitBar等。
  • 动态渲染出来的; 例如Element的Dialog,吐司,消息通知等。

没有您需要组件库?

没关系,可以通过联系我们找到我,然后告诉我需要哪种成熟的组件库,我将会很快集成。

在组件库趋于稳定好用之后,会考虑将源代码开放,使大家一起参与建设。或者可以根据这个项目搭建属于您自己的组件搭建平台。

核心原理介绍

我们知道,在编写后的 vue 代码在运行时会生成实际的 Html 代码,而组件生成平台的职责是将这些 Html 再转换为 vue 代码。

为了达到这样的目的,我们目前可行的思路是:将原始的代码文件进行预编译:对指定的 vue 组件分配一个随机 ID,并将这个 vue 文件的代码结构转换为 Json,以 map 的形式存储于 map.js 文件中。在运行时,将 map.js 文件加载进内存。当拖动某个被 lc-mark 标记的元素时,我们可获得这个元素相应的 ID,再通过这个 ID 到 map 中查找,于是获得了对应的原始代码结构。当拖入到某个元素中时,也通过相同的方式获得目标元素的原始代码,再将这两部分原始代码合并,并建立上下级关系。随后,通过新的代码结构,分析对应的@click、v-model、class 等我们所关注的属性,然后再将其生成对应的代码插入到将要生成的 Vue 组件中。如此,便形成了一个较为完整的 Vue 组件代码。

为了实现以上思路,有几项关键技术:

  • 对 Vue 组件的解析与生成
  • 上下级组件之间的数据结构关系
  • html 元素与 Vue 代码之间吻合的对应关系
  • Vue 代码的关键字解析,如@click
  • 将代码转换为对象,将对象转换为代码
  • 辅助线的定位与绘制

常见问题

期待您来提问。

联系我们

如有疑问或者想法建议可通过以下方式联系到我:

  • 邮件: sahadev@foxmail.com 或 shangbin1@tal.com
  • 知音楼: 172332

或者可以在线讨论: Gitter IM

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478636.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 523. 连续的子数组和(求余 哈希)

1. 题目 给定一个包含非负数的数组和一个目标整数 k&#xff0c;编写一个函数来判断该数组是否含有连续的子数组&#xff0c;其大小至少为 2&#xff0c;总和为 k 的倍数&#xff0c;即总和为 n*k&#xff0c;其中 n 也是一个整数。 示例 1: 输入: [23,2,4,6,7], k 6 输出: …

知识图谱简介

01 什么是知识图谱 我们可以从不同的视角去审视知识图谱的概念。 在Web视角下&#xff0c;知识图谱如同简单文本之间的超链接一样&#xff0c;通过建立数据之间的语义链接&#xff0c;支持语义搜索。 在自然语言处理视角下&#xff0c;知识图谱就是从文本中抽取语义和结构化的…

流量运营数据产品最佳实践——美团旅行流量罗盘

背景 互联网进入“下半场”后&#xff0c;美团点评作为全球最大的生活服务平台&#xff0c;拥有海量的活跃用户&#xff0c;这对技术来说&#xff0c;是一个巨大的宝藏。此时&#xff0c;我们需要一个利器&#xff0c;来最大程度发挥这份流量巨矿的价值&#xff0c;为酒旅的业务…

开源开放 | OMAHA 联合 OpenKG 发布新冠诊疗图谱数据

本文转载在公众号&#xff1a;OMAHA联盟。今年新型冠状病毒肺炎爆发期间&#xff0c;大数据、云计算、人工智能等新一代信息技术支撑着我国建立和健全疫情防控机制。知识图谱作为机器认知智能实现的基础之一&#xff0c;是人工智能的重要组成部分&#xff0c;在“抗疫”行动中赋…

LeetCode 498. 对角线遍历

1. 题目 给定一个含有 M x N 个元素的矩阵&#xff08;M 行&#xff0c;N 列&#xff09;&#xff0c;请以对角线遍历的顺序返回这个矩阵中的所有元素&#xff0c;对角线遍历如下图所示。 输入: [[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ] ]输出: [1,2,4,7,5,3,6,8,9]2. 解题 横…

图灵奖得主Jeff Ullman:机器学习不是数据科学的全部!统计学也不是!

文 | Jeff Ullman源 | 智源社区3月31日&#xff0c;2020年图灵奖重磅出炉&#xff0c;颁给了哥伦比亚大学计算机科学名誉教授 Alfred Vaino Aho 和斯坦福大学计算机科学名誉教授 Jeffrey David Ullman。Jeff Ullman 是数据科学领域的巨擘&#xff0c;他的研究兴趣包括数据库理论…

深度学习及AR在移动端打车场景下的应用

本文内容根据作者在美团Hackathon 4.0中自研的项目实践总结而成。作为美团技术团队的传统节目&#xff0c;每年两次的Hackathon已经举办多年&#xff0c;产出很多富于创意的产品和专利&#xff0c;成为工程师文化的重要组成部分。本文就是2017年冬季Hackathon 4.0一个获奖项目的…

开源开放 | 熵简科技 AI Lab 开源金融领域中文预训练语言模型 FinBERT

1 背景及下载地址为了促进自然语言处理技术在金融科技领域的应用和发展&#xff0c;熵简科技 AI Lab 近期开源了基于 BERT 架构的金融领域预训练语言模型 FinBERT 1.0。相对于Google发布的原生中文BERT、哈工大讯飞实验室开源的BERT-wwm 以及 RoBERTa-wwm-ext 等模型&#xff0…

前端如何做极致的首屏渲染速度优化

这里说的极致是技术上可以达到最优的性能。 这里不讨论常见的优化手段&#xff0c;比如&#xff1a;Script标签放到底部、DNS预解析、HTTP2.0、CDN、资源压缩、懒加载等。 这里讨论的是如何使First Contentful Paint的时间降到最低&#xff0c;这个指标决定了白屏的时间有多长…

LeetCode 209. 长度最小的子数组(滑动窗口)

1. 题目 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的连续子数组。 如果不存在符合条件的连续子数组&#xff0c;返回 0。 示例: 输入: s 7, nums [2,3,1,2,4,3] 输出: 2 解释: 子数组 [4,3] 是该条件下的长度最小的连…

京东 | NLP人才联合培养计划

01 京东AI项目实战课程安排覆盖了从经典的机器学习、文本处理技术、序列模型、深度学习、预训练模型、知识图谱、图神经网络所有必要的技术。项目一、京东健康智能分诊项目第一周&#xff1a;文本处理与特征工程| Bag of Words模型| 从tf-idf到Word2Vec| SkipGram与CBOW| Hiera…

论文小综 | Pre-training on Graphs

本文转载自公众号&#xff1a;浙大KG。作者&#xff1a;方尹、杨海宏&#xff0c;浙江大学在读博士&#xff0c;主要研究方向为图表示学习。在过去几年中&#xff0c;图表示学习和图神经网络(Graph Neural Network, GNN)已成为分析图结构数据的热门研究领域。图表示学习旨在将具…

初探下一代网络隔离与访问控制

概述 安全域隔离是企业安全里最常见而且最基础的话题之一&#xff0c;目前主要的实现方式是网络隔离&#xff08;特别重要的也会在物理上实现隔离&#xff09;。对于很小的公司而言&#xff0c;云上开个VPC就实现了办公网和生产网的基础隔离&#xff0c;但对于有自建的IDC、网络…

LeetCode 189. 旋转数组(环形替换)

1. 题目 给定一个数组&#xff0c;将数组中的元素向右移动 k 个位置&#xff0c;其中 k 是非负数。 示例 1:输入: [1,2,3,4,5,6,7] 和 k 3 输出: [5,6,7,1,2,3,4] 解释: 向右旋转 1 步: [7,1,2,3,4,5,6] 向右旋转 2 步: [6,7,1,2,3,4,5] 向右旋转 3 步: [5,6,7,1,2,3,4]要求…

吴恩达:机器学习应以数据为中心

源 | 新智元今天是吴恩达45岁生日。他是国际最权威的ML学者之一&#xff0c;学生遍布世界各地。在最近的一期线上课程中&#xff0c;吴恩达提出了以模型为中心向以数据为中心的AI。吴恩达发推称&#xff0c;「大家为自己送上最好的礼物就是&#xff0c;观看这个视频观看并提出自…

如何开发小程序开发者工具?

最近集团内部在自研小程序&#xff0c;我负责小程序开发者工具的调试部分。经过一段时间的探索&#xff0c;摸索出不少经过实际检验的可行手段。接下来将会用几篇文章总结一下思路。 文章的内容主要会分为以下几部分&#xff1a; 如何建立逻辑层运行时容器&#xff08;两种方…

美团点评基于Storm的实时数据处理实践

背景 目前美团点评已累计了丰富的线上交易与用户行为数据&#xff0c;为商家赋能需要我们有更强大的专业化数据加工能力&#xff0c;来帮助商家做出正确的决策从而提高用户体验。目前商家端产品在数据应用上主要基于离线数据加工&#xff0c;数据生产调度以“T1”为主&#xff…

会议交流 | 大规模知识图谱的构建及应用分享

本文转载自公众号&#xff1a;DataFunTalk。论坛出品&#xff1a;张伟 阿里巴巴 资深算法专家分享时间&#xff1a;12月19日&#xff0c;9:00-12:00导读&#xff1a;12月19日&#xff0c;9&#xff1a;00-12&#xff1a;00。在DataFunTalk年终大会上&#xff0c;由阿里巴巴资深…

机器翻译小记

神经网络翻译面临的挑战