@jiess/core
v5.0.2
Published
基于javascript的配置式渲染库,同时支持vue2,vue3和react
Downloads
49
Maintainers
Readme
核心库 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环境中,会自动注册全局组件,现已移除,可手动注册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/[email protected]一致