New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@cicada/render

Package Overview
Dependencies
Maintainers
7
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cicada/render - npm Package Compare versions

Comparing version 1.1.22-alpha8 to 1.1.22-alpha9

5

lib/common.js

@@ -45,2 +45,3 @@ 'use strict';

exports.checkPlainValue = checkPlainValue;
exports.isDebug = isDebug;

@@ -336,2 +337,6 @@ var _isPlainObject = require('lodash/isPlainObject');

return true;
}
function isDebug() {
return typeof window !== 'undefined' && window.cicadaEnv === 'DEBUG';
}

@@ -283,2 +283,7 @@ 'use strict';

}
if ((0, _common.isDebug)()) {
/* eslint-disable no-console */
console.info('DidMount: ' + displayName + '(' + this.getResolvedRootPath() + ')');
/* eslint-enable no-console */
}
}

@@ -311,4 +316,21 @@ }, {

}
if ((0, _common.isDebug)()) {
/* eslint-disable no-console */
console.info('UnMount: ' + displayName + '(' + this.getResolvedRootPath() + ')');
/* eslint-enable no-console */
}
}
// for debug
}, {
key: 'componentDidUpdate',
value: function componentDidUpdate() {
if ((0, _common.isDebug)()) {
/* eslint-disable no-console */
console.info('Update: ' + displayName + '(' + this.getResolvedRootPath() + ')');
/* eslint-enable no-console */
}
}
}, {
key: 'convertToControlledListener',

@@ -315,0 +337,0 @@ value: function convertToControlledListener(injectedComponentArg) {

47

lib/convertFragment.js

@@ -45,24 +45,26 @@ 'use strict';

var _common = require('./common');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function noop() {} /**
* convertFragment 负责将 config 片段转换为金蝉组件。
* 这里的重点问题有两个:
*
* 1. 由于金蝉组件都是受控,所以我们转换出的组件也必须是受控的。由于之前
* Render 的设计已经考虑了受控形式,所以这里只要遵照 Render 的规则给其传入
* onChange 函数即可变为受控。
*
* 2. 转换为受控形式之后, 组件的渲染都是由外部传入新数据来控制的。如果包装后
* 的组件也采取这种获取新值后重新渲染的方式,那么在内部结构变大后,可能会产
* 生性能问题。例如组件中的某一个 input 一直输入,每次都要从外部全部刷新,会
* 感觉卡顿。为了解决这个问题,首先,转换后的组件声明了 shouldComponentUpdate
* 为 false,永远不重新渲染。然后,我们让内部 Render 在发生变化先用 stateTree 的
* cache 缓存住变化,不通知组件更新,仍然往外跑一遍流程,然后在外部通知要重渲染时
* flush 内部的 stateTree,继续使用 Render 内部的精确更新。
*/
/**
* convertFragment 负责将 config 片段转换为金蝉组件。
* 这里的重点问题有两个:
*
* 1. 由于金蝉组件都是受控,所以我们转换出的组件也必须是受控的。由于之前
* Render 的设计已经考虑了受控形式,所以这里只要遵照 Render 的规则给其传入
* onChange 函数即可变为受控。
*
* 2. 转换为受控形式之后, 组件的渲染都是由外部传入新数据来控制的。如果包装后
* 的组件也采取这种获取新值后重新渲染的方式,那么在内部结构变大后,可能会产
* 生性能问题。例如组件中的某一个 input 一直输入,每次都要从外部全部刷新,会
* 感觉卡顿。为了解决这个问题,首先,转换后的组件声明了 shouldComponentUpdate
* 为 false,永远不重新渲染。然后,我们让内部 Render 在发生变化先用 stateTree 的
* cache 缓存住变化,不通知组件更新,仍然往外跑一遍流程,然后在外部通知要重渲染时
* flush 内部的 stateTree,继续使用 Render 内部的精确更新。
*/
/* eslint-disable no-nested-ternary */
function noop() {}
function computeFrom(linkState, utilInstances, _ref) {

@@ -260,2 +262,7 @@ var state = _ref.state;

instance.stateTree.flush();
if ((0, _common.isDebug)()) {
/* eslint-disable no-console */
console.info('Fragment stateTree flush');
/* eslint-enable no-console */
}
}

@@ -346,2 +353,8 @@

if ((0, _common.isDebug)()) {
/* eslint-disable no-console */
console.info('Fragment render');
/* eslint-enable no-console */
}
return _react2.default.createElement(_Render2.default, {

@@ -348,0 +361,0 @@ stateTree: instance.stateTree,

@@ -43,2 +43,4 @@ 'use strict';

var _common = require('./common');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -231,2 +233,7 @@

instance.stateTree.flush();
if ((0, _common.isDebug)()) {
/* eslint-disable no-console */
console.info('DynamicRender stateTree flush');
/* eslint-enable no-console */
}
};

@@ -256,2 +263,8 @@

if ((0, _common.isDebug)()) {
/* eslint-disable no-console */
console.info('DynamicRender render');
/* eslint-enable no-console */
}
return _react2.default.createElement(_Render2.default, {

@@ -258,0 +271,0 @@ config: config,

{
"name": "@cicada/render",
"version": "1.1.22-alpha8",
"version": "1.1.22-alpha9",
"main": "./lib/index.js",

@@ -5,0 +5,0 @@ "scripts": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc