首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

低代码海报平台的编辑器难点剖析

对于单独的组件来说,属性面板应该是语义化的,无论是开发还是非开发同学,通过属性面板的操作区,就可以直观的知道一个组件的属性是什么,应该如何使用和编辑。 那么属性面板应该包含哪些内容呢?...最常见的有 textarea、input、select 等。 4、error:属性校验信息。当用户输入了不合法的或者类型不匹配时,可给予适当的错误提示信息。...3编辑属性,画布同步更新 上面只是初步建立了属性和组件的对应关系,组件初始值的展示、复杂组件的展示以及表单值更新后,画布如何同步更新,这些问题我们还都没有解决。...但是这里我没有使用z-index,而是利用了层叠领域黄金准则的第二条。...这个功能是很常见的,他可以极大的提升用户体验,提高编辑效率,但是用代码应该如何实现呢? 我前一段写过一篇低代码平台的撤销与重做该如何设计?

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Vue原理】VModel - 源码版 之 表单元素绑定流程

    你知道我这篇文章写了多久,一个多星期啊,不是研究多久啊,是写啊写啊,不停地修修改改,一直在想如何才能讲明白 [image] 如果你做好了十足的学习准备,会对你事半功倍,如果你只是看看,请看白话版吧,不然估计会越看越烦...如果你看过白话版,估计你会了解今天内容的大概,也能很快就入戏 今天讲解不同表单元素的Vue是如何处理的,表单元素有 input、textarea、select、checkbox、radio 五大种 所以...,我们把每个表单元素当做一个模块,然后每个模块解决三个问题的流程,来开始我们今天的表演 1、v-model 如何绑定表单值 2、v-model 如何绑定事件 4、v-model 如何双向更新 TIP 下面所有涉及到的源码...vue实例,所有绑定 v-model 我都用 name [image] --- Input、Textarea 哟哟,看过 model ,就知道 这两种元素是使用 genDefaultModel 处理的...按我的理解呢,我觉得应该是原始select的 value 只有字符串一类型的值,而 Vue 的select 支持 数字和字符串两种类型的值啊 拼接事件 观察下面的渲染函数,就可以很清楚地名表,select

    83230

    Vue.js如何阻止子组件的点击事件?

    目录前言问题描述解决方案方案一:在子组件中添加 prop 进行条件判断方案二:在子组件外部覆盖一层透明遮罩总结前言你好,我是喵喵侠。在实际开发中,我们有时候会遇到需要控制子组件行为的需求。...下面我将使用 Ant Design Vue 框架实现一个示例,来展示如何在 Vue.js 中阻止子组件的点击事件。问题描述在表单业务中,有一个封装的子组件(包含 input 和 modal)。...如果选择框的值为空,则弹窗中的查询结果将为空,这个显然不是我想要的。为了保证每次弹窗查询的列表是有值的,我要做的是,当外部表单的两个选择框为空时,阻止子组件的点击事件,并给用户弹出错误提示。...解决方案经过了我的一番研究后,得出了实现两种方案:在子组件中添加 prop 进行条件判断。在子组件外部覆盖一层透明遮罩。...$emit("showError", true); } } }};注意:错误提示的信息,在子组件里面emit不要写死,而是在父组件接受handleError后再进行处理

    50210

    根据接口自动生成表单探索

    一个好的易用的返回结果,应该是二维平铺的,现实世界有大量的程序(也包括人)对它更易于接受。复杂的嵌套徒增理解障碍和引起别人的错误以外,似乎没有什么额外的用处。...我认为也非常适合API。我们将一个API的参数等描述信息放到Object里,然后业务逻辑放到class里。...比如,我有一个创建脚本文件的接口,对应的描述信息如下: object CreateScriptFileAction { object Params { val USER_ID = Input...但是表单里核心难点是,表单的元素存在依赖。比如A选择框依赖于B输入框。用户在B输入了,A才能拿到数据。极端点,用户输入了一个用户id,表单其他所有的选项会自动得到填充。...这个,我们通过Dynamic 类型可以得到很好的解决。解决办法很简答,Dynamic描述了该字段依赖于哪个字段,并且依赖的字段一旦发生变更,应该到哪去获取数据。

    76810

    低代码平台的属性面板该如何设计?

    我们先对整个平台的设计做一下简单回顾: 这里是我平时自己维护的一个低代码平台,技术栈是Vue。后续的分享也是基于该平台的一些具体实现细节展开 和市面上大部分可视化搭建系统基本类似。...这个时候,应该如何添加属性和表单的基础对应关系呢? 这个也是本篇文章的主题:低代码平台的属性面板该如何设计? 1属性面板应该包含哪些内容?...这个可以显式的告诉具体的属性的作用,比如元素的宽高、边框、背景颜色等。 2、description:属性的描述信息。...最常见的有 textarea、input、select 等。 4、error:属性校验信息。当用户输入了不合法的或者类型不匹配时,可给予适当的错误提示信息。...这个时候我们在对应的组件当中发射出一个事件(change),当 change 发生的时候,我们能够知道是哪个元素的哪个属性,以及新的值是什么,我们就用这些信息更新这个值,这样 store完成更新,元素的

    1.2K50

    AngularDart4.0 指南- 表单 顶

    > 每个input元素都有一个id属性,label元素的for属性使用它来匹配label和input控件。...每个input元素都有一个ngControl指令,Angular表单需要用这个指令在表单上注册控件。 如果您现在运行应用程序并更改每个英雄model属性,表单可能会显示如下: ?...变量(通过#name =“ngForm”语法)绑定到与input元素关联的NgModel。...如果您忽略原始状态,则只有在该值有效时才会隐藏该消息。 如果您使用新(空白)英雄或无效英雄到达此组件,则在您执行任何操作之前,您将立即看到错误消息。...如果需要,可以将相同类型的错误消息添加到select>中,但这不是必须的,因为选择框已经将权限限制为有效值。

    17.5K30

    翻译 | 玩转 React 表单 —— 受控组件详解

    除了提供单独的组件代码,我还将这些组件放进表单中,方便你理解子组件如何更新父组件 state ,以及接下来父组件如何通过 props(单向数据流)更新子组件。...该设置指定渲染 input type="text" /> 组件或 input type="number" /> 组件。 title:接收一个字符串,我们将它渲染到输入框的 label 元素中。...我们在检查到 input 的值是否是 props.selectedOptions 数组的元素之一时生成该布尔值。 myArray.indexOf(item) 方法返回 item 在数组中的索引值。...this.setState({ selectedPets: newSelectionArray }); } 如同所有处理方法一样,事件对象被传入方法,这样一来我们就能拿到事件对象的值(译注:准确来说,应该是事件目标元素的值...该方法需要处理两种可能的情况。 如果 input 组件的值不在 selectedOptions 数组中,我们要将值添加进该数组。

    11.4K100

    interview record 20160822

    这个问题我去网上查了一圈,最终按我的理解,这个问题答案的起点应该始于,HTML中有哪些替代标签? 那么就来查概念吧,替换标签是浏览器根据其标签的元素与属性来判断具体显示内容的标签。...所以举一反三咯,a也是,img也是,textarea也是,select也是,因为这些标签本身并没有内容,它们的内容依赖于属性,因此是可”替换”的。...参考: html中label宽度设置、非替换元素和替换元素 使用display:inline-block时,标签之间的空格如何解决(非margin)?...这个问题的表现类似于这样: 其中第一行中的input之间有一个小小的空格,然后呢,源码中并没有类似的的空格,然而真的没有吗,并不是的,这里的空格其实是input后跟着的那个换行符,要解决这个问题,下边的大神博客给了...可以使用无闭合标签 可以对父元素使用font-size: 0; 这几个方法我亲测有效,其他方法日后有机会也试试,最后感叹句css真是博大精深,我表示除了积累应该是没有捷径了。

    44630

    jQuery 升级踩坑大全

    但是如果在你调用on函数的时候,前面的$(selector)在当前的网页上根本不匹配任何元素(该元素可能是后面的代码才加到DOM里的),那是不会绑定成功的。...事实上,live函数将$(selector)代理到了document元素上,这个元素是肯定存在的,所以不会出现类似情况。...,点击该元素的时候两个函数交替着执行。...正确的做法应该是 $('input').val(); //获取input表单现在所输入的值 $('input').val('helloworld'); //设置input表单输入的值 到底是获取还是设置...这个问题常见于AJAX接收服务端返回值的时候。服务端可能返回一个空字符串,这时候调用该接口会产生错误。必须向$.parseJSON传入合法的JSON字符串。

    3.9K90

    Python语言程序设计之三--列表Li

    我的天!但是题目出的非常棒,许多题目都具有相似性。这倒不是说这些题目类似,而是它们都会用到某一个特定的函数,或者会用到某一个特定的算法。这里我要整理一下常见的列表操作和容易犯错的地方。...这个循环将items列表里的数据循环添加到matrix中,创建一个二维列表。它是如何做到的呢?习题明确说明这是3*3矩阵,所以matrix有9个元素。...从控制台读取9个元素,如何将它们分配到3行3列的列表中呢? 思路是,首先我们创建一个列表lst,然后每循环一次,将这个列表lst添加到矩阵matrix中,这样就是一个二维列表了。...4、接着3来讲这个矩阵的乘法 我做了这个习题,但是遇到了一个问题。就是我矩阵A乘以矩阵B,得到矩阵C,我用不同的方法初始化了矩阵C,运行结果却一个正确一个错误。...里面什么都没有,那下面我怎么能通过下标来访问matrix中的元素呢?!!!!所以,当我访问行为 i 列为 j 的元素时,系统就一定会报错,而且一定是下标溢出错误。这就是原因所在。

    1.1K10

    移动端爬坑记 --- (1)布局与样式上的奇葩偶遇

    有些android不带这个很奇葩【错乱】,且不要使用margin:0 auto【作用于子元素】 在滚动包裹层添加这么一条私有前缀样式即可享受类似APP的滑动效果,不仅丝滑,还带弹性!...3D 空间如何呈现:保留3D / -webkit-transform-style: preserve-3d; / 设置进行转换的元素的背面在面对用户时是否可见:隐藏 / -webkit-backface-visibility...{color:#F40;} 移动端禁止选中内容 E { -webkit-user-select: none; -moz-user-select: none; -ms-user-select...事件 document.getElementById('test').addEventListener('input',fn,false); 页面高度渲染错误 document.documentElement.style.height...,那么我们只要使用input:text类型的输入框并通过样式-webkit-text-security: disc; 隐藏输入密码从而解决。

    12710

    移动端bug汇总(一)

    A:根本原因是-webkit-tap-highlight-color,这个属性是用于设定元素在移动设备(如Adnroid、iOS)上被触发点击事件时,响应的背景框的颜色。...: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; 3...; 4.禁止文本缩放 Q: 禁止文本缩放 A:代码如下 -webkit-text-size-adjust: 100%; 5.如何禁止保存或拷贝图像 Q: 如何禁止保存或拷贝图像 A:代码如下 img{...-webkit-touch-callout: none;} 6.解决字体在移动端比例缩小后出现锯齿的问题 Q: 解决字体在移动端比例缩小后出现锯齿的问题 A:代码如下 -webkit-font-smoothing...{ font-size:10pt;} 8.audio元素和video元素在ios和andriod中无法自动播放 Q: audio元素和video元素在ios和andriod中无法自动播放 A:代码如下,

    1.3K20

    移动端bug汇总(一)

    A:根本原因是-webkit-tap-highlight-color,这个属性是用于设定元素在移动设备(如Adnroid、iOS)上被触发点击事件时,响应的背景框的颜色。...: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; 3...; 4.禁止文本缩放 Q: 禁止文本缩放 A:代码如下 -webkit-text-size-adjust: 100%; 5.如何禁止保存或拷贝图像 Q: 如何禁止保存或拷贝图像 A:代码如下 img{...-webkit-touch-callout: none;} 6.解决字体在移动端比例缩小后出现锯齿的问题 Q: 解决字体在移动端比例缩小后出现锯齿的问题 A:代码如下 -webkit-font-smoothing...{ font-size:10pt;} 8.audio元素和video元素在ios和andriod中无法自动播放 Q: audio元素和video元素在ios和andriod中无法自动播放 A:代码如下,

    3.2K130
    领券