https://www.ivx.cn/customerService/Service/
ivx中的变量为何没有监听改变的事件?如何实现变量改变的监听?
[{"insert":"\t 在ivx编辑器中,“变量”类型的组件是非常重要的组成部分。这类组件有一个共同的特点,在它们上面都没有提供监听数据改变的事件。而像Vue这样的MVVM框架中,会提供一个watch方法,可以用来监听Vue实例上的数据变动。所以习惯使用watch或者类似的变量监听事件机制的同学,在接触ivx开发时可能会觉得不够方便。\n\n"},{"attributes":{"size":"16px","bold":true},"insert":"ivx的变量不支持数据改变的事件的原因:"},{"insert":"\n\n原生的JS中,对于基础变量的数值改变事件监听(getter,setter)属于高级功能,能降低代码冗余,更好的优化代码结构和可阅读性,但并不属于不可替代的基础功能。"},{"attributes":{"list":"bullet"},"insert":"\n"},{"insert":"\n目前ivx的变量是基于原生JS中Number,String,Object,Array等基础类型的数据进行实现。如果要实现数据改变监听的功能,则需要对变量进行实例化改造,为这些变量引入组件/生命周期等核心处理部分并同时需要增加额外的监听性能开销,不利于大型项目的性能优化。"},{"attributes":{"list":"bullet"},"insert":"\n"},{"insert":"\n对于基于数据驱动框架开发的应用,监听变量的数值改变事件容易形成意外的数据写入死循环,对使用者的把控能力要求较高。这一点对于可视化编辑上则更为明显,比起纯代码的项目,可视化编辑中的变量改变的死循环排查将更为困难,降低了项目的稳定性。"},{"attributes":{"list":"bullet"},"insert":"\n"},{"insert":"\n\t ivx的基础变量组件的设计理念,是提供高性能的,可靠的通用普适组件,以极低的学习和使用成本,快速稳定地满足不同使用场景需求。因此在权衡利弊后,对于性能开销较大,上手难度较高,容易出现死循环等情况的变量数据改变事件,目前ivx上暂时是不提供直接的支持的。\n\n"},{"attributes":{"size":"16px","bold":true},"insert":"如何自行实现变量数据改变事件:"},{"insert":"\n\n\t 如果要自行实现变量的数据改变事件,目前有两种方法比较推荐:\n\n\t"},{"attributes":{"bold":true},"insert":" 1.采用动作组对变量赋值动作进行二次封装"},{"insert":"\n\t 利用动作组进行变量赋值的二次封装,将赋值后需要进行的操作和判断在动作组上写入。在需要对变量赋值时调用动作组即可。如图:\n\n"},{"insert":{"image":"//file3.ih5.cn/v35/files/a5f335d67143e988c3ed2c9cfd49c4e2_10338_889_172.png"}},{"insert":"\n\n\t\t"},{"insert":{"image":"//file3.ih5.cn/v35/files/8d3e10f0f43034348be8bf90fe21cc4b_67899_1827_619.png"}},{"insert":"\n\n"},{"attributes":{"bold":true},"insert":"\t 体验地址:"},{"attributes":{"link":"https://file9ae0127bb8f8.v4.h5sys.cn/play/E7slpW7z"},"insert":"https://file9ae0127bb8f8.v4.h5sys.cn/play/E7slpW7z"},{"insert":"\n\n"},{"attributes":{"bold":true},"insert":" 2.编写自定义组件/小模块"},{"insert":"\n\t 自定义组件/小模块是ivx为满足高度自定义和高复用需求而提供的由用户进行代码级别/组件级别的自定义开发功能。利用小模块的自定义事件或者自定义组件的事件配置方法,可以很方便的提供变量的数据改变事件。编写好的自定义组件/小模块能在云端保存,并且可以在不同的案例中进行复用。\n"}]
在ivx编辑器中,“变量”类型的组件是非常重要的组成部分。这类组件有一个共同的特点,在它们上面都没有提供监听数据改变的事件。而像Vue这样的MVVM框架中,会提供一个watch方法,可以用来监听Vue实例上的数据变动。所以习惯使用watch或者类似的变量监听事件机制的同学,在接触ivx开发时可能会觉得不够方便。 ivx的变量不支持数据改变的事件的原因: 原生的JS中,对于基础变量的数值改变事件监听(getter,setter)属于高级功能,能降低代码冗余,更好的优化代码结构和可阅读性,但并不属于不可替代的基础功能。 目前ivx的变量是基于原生JS中Number,String,Object,Array等基础类型的数据进行实现。如果要实现数据改变监听的功能,则需要对变量进行实例化改造,为这些变量引入组件/生命周期等核心处理部分并同时需要增加额外的监听性能开销,不利于大型项目的性能优化。 对于基于数据驱动框架开发的应用,监听变量的数值改变事件容易形成意外的数据写入死循环,对使用者的把控能力要求较高。这一点对于可视化编辑上则更为明显,比起纯代码的项目,可视化编辑中的变量改变的死循环排查将更为困难,降低了项目的稳定性。 ivx的基础变量组件的设计理念,是提供高性能的,可靠的通用普适组件,以极低的学习和使用成本,快速稳定地满足不同使用场景需求。因此在权衡利弊后,对于性能开销较大,上手难度较高,容易出现死循环等情况的变量数据改变事件,目前ivx上暂时是不提供直接的支持的。 如何自行实现变量数据改变事件: 如果要自行实现变量的数据改变事件,目前有两种方法比较推荐: 1.采用动作组对变量赋值动作进行二次封装 利用动作组进行变量赋值的二次封装,将赋值后需要进行的操作和判断在动作组上写入。在需要对变量赋值时调用动作组即可。如图: 体验地址:https://file9ae0127bb8f8.v4.h5sys.cn/play/E7slpW7z 2.编写自定义组件/小模块 自定义组件/小模块是ivx为满足高度自定义和高复用需求而提供的由用户进行代码级别/组件级别的自定义开发功能。利用小模块的自定义事件或者自定义组件的事件配置方法,可以很方便的提供变量的数据改变事件。编写好的自定义组件/小模块能在云端保存,并且可以在不同的案例中进行复用。
["(8)","(7)","(13)","(25)"]
ivx中的变量为何没有监听改变的事件?如何实现变量改变的监听? 在ivx编辑器中,“变量”类型的组件是非常重要的组成部分。这类组件有一个共同的特点,在它们上面都没有提供监听数据改变的事件。而像Vue这样的MVVM框架中,会提供一个watch方法,可以用来监听Vue实例上的数据变动。所以习惯使用watch或者类似的变量监听事件机制的同学,在接触ivx开发时可能会觉得不够方便。 ivx的变量不支持数据改变的事件的原因: 原生的JS中,对于基础变量的数值改变事件监听(getter,setter)属于高级功能,能降低代码冗余,更好的优化代码结构和可阅读性,但并不属于不可替代的基础功能。 目前ivx的变量是基于原生JS中Number,String,Object,Array等基础类型的数据进行实现。如果要实现数据改变监听的功能,则需要对变量进行实例化改造,为这些变量引入组件/生命周期等核心处理部分并同时需要增加额外的监听性能开销,不利于大型项目的性能优化。 对于基于数据驱动框架开发的应用,监听变量的数值改变事件容易形成意外的数据写入死循环,对使用者的把控能力要求较高。这一点对于可视化编辑上则更为明显,比起纯代码的项目,可视化编辑中的变量改变的死循环排查将更为困难,降低了项目的稳定性。 ivx的基础变量组件的设计理念,是提供高性能的,可靠的通用普适组件,以极低的学习和使用成本,快速稳定地满足不同使用场景需求。因此在权衡利弊后,对于性能开销较大,上手难度较高,容易出现死循环等情况的变量数据改变事件,目前ivx上暂时是不提供直接的支持的。 如何自行实现变量数据改变事件: 如果要自行实现变量的数据改变事件,目前有两种方法比较推荐: 1.采用动作组对变量赋值动作进行二次封装 利用动作组进行变量赋值的二次封装,将赋值后需要进行的操作和判断在动作组上写入。在需要对变量赋值时调用动作组即可。如图: 体验地址:https://file9ae0127bb8f8.v4.h5sys.cn/play/E7slpW7z 2.编写自定义组件/小模块 自定义组件/小模块是ivx为满足高度自定义和高复用需求而提供的由用户进行代码级别/组件级别的自定义开发功能。利用小模块的自定义事件或者自定义组件的事件配置方法,可以很方便的提供变量的数据改变事件。编写好的自定义组件/小模块能在云端保存,并且可以在不同的案例中进行复用。