UNPKG

@jiess/core

Version:

基于javascript的配置式渲染库,同时支持vue2,vue3和react

303 lines (193 loc) 10.5 kB
# 核心库 jiess-core ## @jiess/plus 版本迭代记录 ### 1.2.0-beta.x * 新增:子组件与父组件共享上下文的拓展组件 * 拓展:对Midder类追加订阅,广播的能力 * 优化:$if内置属性在JiessComponet的使用逻辑 * 底层:对底层的渲染逻辑进行了优化,更加健壮 ### 1.2.x * 优化:对Midder追加tag,以后订阅覆盖先订阅的原则,防止多操作时重复添加订阅 ### 1.3.0-beta.x * 响应式的整体重构,优化结构和性能 * 移除不常用的API: JPromise ### 1.3.1 * 修复一个和插槽相关的BUG * 其他一些细微优化 ### 1.3.2 * 新增内置属性 $render 用于定制化渲染:如实现 react 环境使用 vue 组件 ### 1.3.3 * 追加 $props 字段,用于存放外部传入的完整数据 * 修复了内置key算法造成的BUG ### 1.3.4 * 从使用习惯来考虑,移除 $props 字段,将完整的传入数据放在第二个形参 ### 1.3.5 * 将 radio,checkbox,select 统一起来,通过 options 配置生成子项 ### 1.3.8 * 将关联性较弱的Midder模块移出到@jiess/utils中 ### 1.3.9 * 优化处理各环境下默认插槽和children的关系 ### 1.3.0-beta.x * 解决获取原框架props参数变动的问题,从而实现如ant.Form.Item下封装表单组件的能力 ### 1.4.0-beta.x * 新增对 uni-app【vue2环境】的支持 * 新增对 uni-app【vue3环境】的支持 * 新增对 react-native 的支持 ### 1.4.1 * 对插槽进行优化,如果没对插槽指定默认参数,则不进行任何渲染(原来会渲染成空div) * 追加`JiessFragment`空组件,解决顶层元素动态更新的问题 ### 1.4.3 * 解决`JiessFragment`无法支持多层嵌套的问题 * 追加内置属性`$injectPJR`,可以观察注入父级`JsRender`的过程 * 优化`vue2`环境根节点的判断,展开后大于两个子元素,才自动追加外层 * 插入子集的元素,强制同步上下文,使插入元素正确响应式更新 * 对于数据注入`provide/inject`的全面优化和测验 ### 1.4.4 * 进一步对`provide/inject`进行优化 * 增加vue2环境下的构建响应式的方法 * 修复hookData与生命周期自动关联的问题 * 优化vue2环境下事件的提取方案:排除on前缀,并且将首字母改成小写,其余部分的字符串保持不变 * 修复了vue2环境下空数据过滤的产生的属性更新的bug * 对普通节点追加生命周期观察,并返回相应ref等参数 * 移除对Jiess组件节点的生命周期观察 * 移除内置属性`$injectPJR` * 对计算属性的赋值取值增加了`value`约束 ### 1.4.5 * 对响应式的进一步优化 * 生命周期回调钩子允许为异步函数 * 对观察器的触发机理进行重构,实现了手动观察响应式数据时,对最终结果值的调整 ### 1.4.6 * 追加add方法添加元素时按权重排序的能力 $weight * 在setup中获取当前组件的name,可用于中介者标记 * 优化对元素注入key的算法 ### 1.4.7 * 内部梳理,规范化内部结构 * 重写diff算法,用于判定响应式新旧值的更新 * 对响应式赋值自循环对象的比对结果进行优化 * 提供delete移除属性并触发响应式观察的能力 ### 1.5.0 * react环境下采用函数式组件构建基础原框架组件 * react环境下的ref节点获取采用回调式 * vue3环境下加入指令构建的功能 * props仅参与数据类型的校验,不再过滤数据 * 对Jiess组件赋予的Jiess观察器,直接穿透组件,不做处理 * $watchEffect在同步模式下,提供第一时间的变动参数 ### 1.5.1 * 修复了Jiess观察器对Jiess组件透传后,$if在使用时不生效的问题 * vue和react环境中均使用模拟forceUpdate来更新页面 * 对$isReactive进行算法优化 * 对Observe观察触发器增加forceUpdate属性,用于自定义diff算法 ### 1.5.2 * 修复对全局注册的Jiess组件赋予Jiess观察器,关联的穿透问题 ### 1.5.4 * 移除和父级共享上下文的能力(该功能使用场景较少,且较大的增加复杂度) * 增加对setup异步函数的支持,大幅度提升开发体验 * 对else和elseIf的优化和调试 * 对数据注入,以及插槽插入元素,动态更新元素的上下文进行完美绑定 * 移除$render,一是函数式react与vue的节点获取不统一,会造成冗余代码;另一方面可使用ref替代 ### 1.5.5 * vue2环境中,is属性从attrs中读取,而不再从props中读取 *`_static_`为前缀的key,在Jiess构建过程中,直接应用该key ### 1.5.6 * vue2中不允许使用is传递参数,所以JiessComponent中使用`component`接收渲染的Jiess组件 * 数据校验的优化,对各种状态下的数据校验进行了验证 ### 1.5.7 * 对底层进行了优化,无功能性的变动 ### 1.5.8 * 初始注册jiess,不带param参数时的问题修复 * 统一三种技术栈对class的定义: * 在vue3中用class定义类名 * 在vue2和react中用className定义类名 * 在Jiess中用class或className均可直接定义类名 ### 1.6.0 #### 拆分jiess实例 为支持按需引入,将jiess实例上的工具方法拆分出来,以工具函数的形式导出: * 使用时需要以导入的形式引入工具 * 配合自动导入插件,可实现无导入使用 #### 移除内置全局注册 * 在以往安装Jiess时,会自动在上下文注入jiess实例,现已移除,可手动注入 * 在以往的vue环境中,会自动注册全局组件</jiess>,现已移除,可手动注册JiessComponent实现 #### 其他迭代点 * 解除$component对注册组件的限制,实现了对vue和react组件的全局注册 * vue3的JiessComponent对指令的支持 * add加入的元素为Promise类型,则取出真实值,实现异步加载 * Observe观察器增加了动态矫正功能 * children和childs合并处理,不再按权重二选一 * vue2插槽可直接作用于JsRender节点 ### 1.6.1 * 安装Jiess时需要提供两个参数,并移除Jiess实例的$param * 参数一:合并于Jiess实例中 * 参数二:动态注入组件上下文中 ### 1.6.2 * Jiess实例获取的优化 * children属性与childs集合合并时的优化 * Jiess实例中增加缺省属性$render,可用于接管createElement的渲染 ### 1.6.3 * 移除框架中针对taro和uni兼容的旧代码 * 响应观察器中,result结果值的矫正 * package.json导出的简化 * this.add的链式处理 * 合并子元素的优化处理 ### 1.6.4 * Observe观察器优化,在初始化时会获取初始值,从而取代绑定回调获取初始值 * 对$show的优化,解决与`display:none`的冲突 ### 1.6.5 * 进一步对$show进行优化,当值为undefined时,该节点不做隐藏显示处理 ### 1.6.6 * 组件props数据校验的优化:即针对JiessRef数据传参时的特殊处理 * 优化观察器对响应式数据的数据矫正,支持直接通过第三参提供函数了 ### 1.6.7 * 追加了 isRef 校验,可以校验组件传入的数据是否为JiessRef数据类型 * 对响应式观察时默认值的优化,使得异步矫正时,能够第一时间呈现defaultValue ### 1.6.8 * 在异步矫正响应式数据时,对defaultValue以及默认值的优化 * 对beforeUpdate和updated增加零时生命周期的能力,该回调仅执行一次,就立即销毁 ### 1.6.9 * 对响应式更新后的旧节点的响应关系进行销毁处理(含子组件中的所有子节点),防止旧节点中的响应式再次执行 * 针对一个观察者多处使用(不建议),可配置allowDestory属性,手动控制是否允许响应式节点观察器被销毁 * 从新启用$render内置属性,只是其概念与旧版不一样,提供一个函数,用于定制化构造JsRender配置对象 * 对children属性,子元素,default插槽中的节点进行梳理,打通了节点中使用children响应式 ### 1.6.10 * 针对1.6.9的问题的紧急修复 ### 1.6.11 * 观察者函数$val接收的值不为响应式数据的灵活处理方案 * 当Jiess组件直接使用$if:false时,导致的异常保存处理 ### 1.6.12 * 对react环境下的基础组件进行优化 * react环境下的基础组件引入useTransition,并将isPending, startTransition放入组件上下文 * 在Jiess组件中追加了methods和data两个数据,分别用于暴露方法和数据 ### 1.6.13 * 关于子元素渲染的权重,三者取其一: default > children > childs * 移除mergeChildren,子元素不再合并处理(即三选一),权重关系同上 * 对插槽的细节优化,以及多条件验证 * 修复了JIESS_IS的入口验证的BUG ### 1.6.14 * 组件的入参注入到上下文中,方便data和methods中获取 * 对于非响应式数据,初始化式也会执行矫正器,使数据矫正更统一 * 对JsRender和Context中的内置方法和属性统一前缀短横线 ### 1.6.15 * 打包的统一处理 ### 2.0.0 * 移除核心语法`this.render`,完全使用配置式;向低代码迈进 * 原来`render`函数的首参后子元素,统一由children接管 * Jiess组件插槽的定义由`this.slot()`,变为`$slot:插槽名` * 总结:本次迭代重新回到以配置为核心的主导思想,代码更加纯粹 ### 2.0.1 * 移除观察者中的响应式修正correct * 原来`$val`定义响应式观察着,变为`$proxy:响应式对象` * 对`$ref`定义的响应式数据,默认观察其`value`值 * 多层响应式嵌套观察的重复叠加优化 ### 2.0.2 * `$set`的优化,可以加入任意类型的数据 * 一些综合性的优化 ## @jiess/core 版本迭代记录 ### 5.0.0 * 重新启用 `@jiess/core` 库,但原记录中的代码和当前代码完全不同 * 库名更换,将原@jiess/plus库更新为当前的@jiess/core * 原观察模式`model`字段,改为`flush` ### 5.0.1 * 全面自循环移除函数,从而受控区域不再有自循环函数的困扰 * 全面使用clone自循环移除函数,从而受控区域不再有自循环函数的困扰 * 响应式创建不再需要深度控制 ### 5.0.2 * 新增ref响应式对象同步$ref节点方案 * 各种更新,与@jiess/plus@3.1.8一致