@jiess/core
Version:
基于javascript的配置式渲染库,同时支持vue2,vue3和react
303 lines (193 loc) • 10.5 kB
Markdown
# 核心库 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一致