@tarojs/react 3.6.0-beta.1 → 3.6.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,284 @@
1
1
  # @tarojs/react
2
2
 
3
3
  基于 `react-reconciler` 的小程序专用 React 渲染器,连接 `@tarojs/runtime 的 DOM 实例,相当于小程序版的 `react-dom`,暴露的 API 也和 `react-dom` 保持一致。
4
+
5
+ ## HostConfig for Taro
6
+
7
+ Taro 对 HostConfig 进行了针对性的改造,以适应小程序环境。现对各字段进行阐述,具体实现以文件 `./src/reconciler.ts` 为准。
8
+
9
+ 字段的含义描述来源于 [react-reconciler](https://www.npmjs.com/package/react-reconciler/v/0.27.0)
10
+
11
+ ### getPublicInstance(instance)
12
+
13
+ > Determines what object gets exposed as a ref. If you don't want to do anything here, return instance.
14
+
15
+ Taro: 默认返回 instance 即可
16
+
17
+ ### getRootHostContext(rootContainer)
18
+
19
+ > This method lets you return the initial host context from the root of the tree. If you don't intend to use host context, you can return null.
20
+
21
+ Taro: 默认返回 {}
22
+
23
+ ### getChildHostContext(parentHostContext, type, rootContainer)
24
+
25
+ > Host context lets you track some information about where you are in the tree so that it's available inside createInstance as the hostContext parameter.
26
+
27
+ Taro: 默认返回 {}
28
+
29
+ ### resetAfterCommit(containerInfo)
30
+
31
+ > This method is called right after React has performed the tree mutations. You can leave it empty.
32
+
33
+ Taro: 该方法置空
34
+
35
+ ### prepareForCommit(containerInfo)
36
+
37
+ > This method lets you store some information before React starts making changes to the tree on the screen.
38
+
39
+ Taro: 返回 null 即可.
40
+
41
+ ### createInstance(type, props, rootContainer, hostContext, internalHandle)
42
+
43
+ > This method should return a newly created node. For example, the DOM renderer would call document.createElement(type) here and then set the properties from props.
44
+
45
+ Taro: 在 ReactDOM 中会调用 document.createElement 来生成 dom,而在小程序环境中 Taro 中模拟了 document,直接返回 `document.createElement(type)` 即可
46
+
47
+ > 也因为 Taro 没有使用其他入参,因此方法 getRootHostContext / getChildHostContext 默认返回 {} 即可
48
+
49
+ ### appendInitialChild(parentInstance, child)
50
+
51
+ > This method should mutate the parentInstance and add the child to its list of children. For example, in the DOM this would translate to a parentInstance.appendChild(child) call.
52
+
53
+ Taro: 直接 parentInstance.appendChild(child) 即可
54
+
55
+ ### finalizeInitialChildren(instance, type, props, rootContainer, hostContext)
56
+
57
+ > In this method, you can perform some final mutations on the instance. There is a second purpose to this method. It lets you specify whether there is some work that needs to happen when the node is connected to the tree on the screen. If you return true, the instance will receive a commitMount call later. See its documentation below.
58
+
59
+ finalizeInitialChildren 在组件挂载到页面中前调用,更新时不会调用.
60
+
61
+ Taro: 遍历 props,更新到 instance 中即可,同时返回false,即不需要调用 `commitMount` 方法
62
+
63
+ #### prepareUpdate(instance, type, oldProps, newProps, rootContainer, hostContext)
64
+
65
+ > React calls this method so that you can compare the previous and the next props, and decide whether you need to update the underlying instance or not. If you need to update it, you can return an arbitrary object representing the changes that need to happen. Then in commitUpdate you would need to apply those changes to the instance.
66
+
67
+ prepareUpdate 的返回结果是 `commitUpdate` 的第二个入参。prepareUpdate 主要作用是render阶段计算出dom的哪些属性需要更新,这样在 commitUpdate 方法在commit阶段中可以快速更新dom,提高性能.
68
+
69
+ Taro: 对比 oldProps、newProps 计算出差异点,返回 `[prop1, value1, prop2, value2, ...]` .
70
+
71
+ ### shouldSetTextContent(type, props)
72
+
73
+ > Some target platforms support setting an instance's text content without manually creating a text node.
74
+
75
+ Taro: taro 模拟的 text 支持直接赋值 textContent (`packages/taro-runtime/src/dom/text.ts`),该方法返回 false 即可.
76
+
77
+ > 因返回false,因此 resetTextContent 不会被调用
78
+
79
+ ### createTextInstance(text, rootContainer, hostContext, internalHandle)
80
+
81
+ > Same as createInstance, but for text nodes. If your renderer doesn't support text nodes, you can throw here.
82
+
83
+ Taro: 模拟的 document 支持创建 text 节点, 返回 `document.createTextNode(text)` 即可.
84
+
85
+ ### scheduleTimeout(fn, delay)
86
+
87
+ > You can proxy this to setTimeout or its equivalent in your environment.
88
+
89
+ Taro: setTimeout
90
+
91
+ ### cancelTimeout(id)
92
+
93
+ > You can proxy this to clearTimeout or its equivalent in your environment.
94
+
95
+ Taro: clearTimeout
96
+
97
+ ### noTimeout
98
+
99
+ > This is a property (not a function) that should be set to something that can never be a valid timeout ID. For example, you can set it to -1.
100
+
101
+ Taro: -1
102
+
103
+ ### isPrimaryRenderer
104
+
105
+ > This is a property (not a function) that should be set to true if your renderer is the main one on the page.
106
+
107
+ Taro: true
108
+
109
+ ### warnsIfNotActing
110
+
111
+ > Only used in development mode.
112
+
113
+ Taro: true
114
+
115
+ ### supportsMutation
116
+
117
+ > If your target platform is similar to the DOM and has methods similar to appendChild, removeChild, and so on, you'll want to use the mutation mode.
118
+
119
+ Taro: true
120
+
121
+ ### supportsPersistence
122
+
123
+ > If your target platform has immutable trees, you'll want the persistent mode instead.
124
+
125
+ Taro: false
126
+
127
+ ### supportsHydration
128
+
129
+ > is support hydration
130
+
131
+ Taro: false
132
+
133
+ ### getInstanceFromNode(hostRoot)
134
+
135
+ > 自定义获取 instance 的逻辑
136
+
137
+ Taro: 返回 null,React 内部会继续调用 `findFiberRoot` 方法获取.
138
+
139
+ ### beforeActiveInstanceBlur
140
+
141
+ > flag enableCreateEventHandleAPI is false, never call it
142
+
143
+ Taro: 置空
144
+
145
+ ### afterActiveInstanceBlur
146
+
147
+ > flag enableCreateEventHandleAPI is false, never call it
148
+
149
+ Taro: 置空
150
+
151
+ ### preparePortalMount(containerInfo)
152
+
153
+ > This method is called for a container that's used as a portal target. Usually you can leave it empty.
154
+
155
+ Taro: 暂不支持 portal,置空即可
156
+
157
+ ### prepareScopeUpdate
158
+
159
+ > flag enableScopeAPI is false, never call it
160
+
161
+ Taro: 置空
162
+
163
+ ### getInstanceFromScope
164
+
165
+ > flag enableScopeAPI is false, never call it
166
+
167
+ Taro: 返回 null 即可
168
+
169
+ ### getCurrentEventPriority
170
+
171
+ > The constant you return depends on which event, if any, is being handled right now.
172
+
173
+ Taro: 默认为点击事件,返回 `DefaultEventPriority` 即可
174
+
175
+ ### detachDeletedInstance
176
+
177
+ > 当 fiber 被标记为 Deletion 时,dom被卸载后,从dom节点上删除 react 初始化的内容,如 __reactProps$xxxx 等. 详见[React源码](https://github.com/facebook/react/blob/973b90bdf6f4a1d9b3864d93985d4a204f233855/packages/react-dom-bindings/src/client/ReactDOMComponentTree.js#L54)
178
+
179
+ Taro: 因taro无法获取到 $xxxx 随机数,因此暂无法实现善后工作,该方法置空. 但可以根据字段是否 `__react` 开头来实现。
180
+
181
+ ### supportsMicrotasks
182
+
183
+ > 是否支持微任务
184
+
185
+ Taro: true
186
+
187
+ ### scheduleMicrotask
188
+
189
+ > 微任务方法 polyfill
190
+
191
+ Taro: 使用 promise.then 模拟实现,或直接使用 setTimeout
192
+
193
+ **以下字段因 `supportsMutation=true` 而需要被实现**
194
+ ### appendChild(parentInstance, child)
195
+
196
+ > This method should mutate the parentInstance and add the child to its list of children.
197
+
198
+ Taro: 调用 `parentInstance.appendChild(child)` 即可
199
+
200
+ ### appendChildToContainer(container, child)
201
+
202
+ > Same as appendChild, but for when a node is attached to the root container.
203
+
204
+ Taro: 调用 `parentInstance.appendChild(child)` 即可
205
+
206
+ ### commitTextUpdate(textInstance, prevText, nextText)
207
+
208
+ > This method should mutate the textInstance and update its text content to nextText.
209
+
210
+ Taro: 赋值 `textInstance.nodeValue` 即可
211
+
212
+ ### commitMount(instance, type, props, internalHandle)
213
+
214
+ > This method is only called if you returned true from finalizeInitialChildren for this instance.
215
+
216
+ Taro: 因 `finalizeInitialChildren` 返回 false,该方法置空
217
+
218
+ ### commitUpdate(instance, updatePayload, type, prevProps, nextProps, internalHandle)
219
+
220
+ > This method should mutate the instance according to the set of changes in updatePayload.
221
+
222
+ Taro: 根据 updatePayload,将属性更新到 instance 中,此时 updatePayload 是一个类似 `[prop1, value1, prop2, value2, ...]` 的数组
223
+
224
+ > 如果 updatePayload 为 null,该方法在 React 内部不会被调用
225
+
226
+ ### insertBefore(parentInstance, child, beforeChild)
227
+
228
+ > This method should mutate the parentInstance and place the child before beforeChild in the list of its children.
229
+
230
+ Taro: 调用 `parentInstance.insertBefore(child)` 即可
231
+
232
+ ### insertInContainerBefore(container, child, beforeChild)
233
+
234
+ > Same as insertBefore, but for when a node is attached to the root container.
235
+
236
+ Taro: 调用 `container.insertBefore(child)` 即可
237
+
238
+ ### removeChild(parentInstance, child)
239
+
240
+ > This method should mutate the parentInstance to remove the child from the list of its children.
241
+
242
+ Taro: 调用 `parentInstance.removeChild(child)` 即可
243
+
244
+ ### removeChildFromContainer(container, child)
245
+
246
+ > Same as removeChild, but for when a node is detached from the root container.
247
+
248
+ Taro: 调用 `container.removeChild(child)` 即可
249
+
250
+ ### resetTextContent(instance)
251
+
252
+ > If you never return true from shouldSetTextContent, you can leave it empty.
253
+
254
+ Taro: 该方法置空
255
+
256
+ ### hideInstance(instance)
257
+
258
+ > This method should make the instance invisible without removing it from the tree.
259
+
260
+ Taro: `display` 样式置为 `none` 即可
261
+
262
+ ### hideTextInstance(textInstance)
263
+
264
+ > Same as hideInstance, but for nodes created by createTextInstance.
265
+
266
+ Taro: `textInstance.nodeValue = ''` 即可
267
+
268
+ ### unhideInstance(instance, props)
269
+
270
+ > This method should make the instance visible, undoing what hideInstance did.
271
+
272
+ Taro: `display` 样式重置即可
273
+
274
+ ### unhideTextInstance(textInstance, text)
275
+
276
+ > Same as unhideInstance, but for nodes created by createTextInstance.
277
+
278
+ Taro: `textInstance.nodeValue = text` 即可
279
+
280
+ ### clearContainer(container)
281
+
282
+ > This method should mutate the container root node and remove all children from it.
283
+
284
+ Taro: 将 `container` 所有孩子节点 `nodeValue` 置空即可
package/dist/index.js CHANGED
@@ -5,48 +5,45 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var shared = require('@tarojs/shared');
6
6
  var runtime = require('@tarojs/runtime');
7
7
  var Reconciler = require('react-reconciler');
8
- var scheduler = require('scheduler');
8
+ var constants = require('react-reconciler/constants');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
11
 
12
- function _interopNamespace(e) {
13
- if (e && e.__esModule) return e;
14
- var n = Object.create(null);
15
- if (e) {
16
- Object.keys(e).forEach(function (k) {
17
- if (k !== 'default') {
18
- var d = Object.getOwnPropertyDescriptor(e, k);
19
- Object.defineProperty(n, k, d.get ? d : {
20
- enumerable: true,
21
- get: function () { return e[k]; }
22
- });
23
- }
24
- });
25
- }
26
- n["default"] = e;
27
- return Object.freeze(n);
28
- }
29
-
30
12
  var Reconciler__default = /*#__PURE__*/_interopDefaultLegacy(Reconciler);
31
- var scheduler__namespace = /*#__PURE__*/_interopNamespace(scheduler);
32
13
 
33
14
  function isEventName(s) {
34
15
  return s[0] === 'o' && s[1] === 'n';
35
16
  }
36
17
  var IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
37
18
  function updateProps(dom, oldProps, newProps) {
19
+ var updatePayload = getUpdatePayload(dom, oldProps, newProps);
20
+ if (updatePayload) {
21
+ updatePropsByPayload(dom, oldProps, updatePayload);
22
+ }
23
+ }
24
+ function updatePropsByPayload(dom, oldProps, updatePayload) {
25
+ for (var i = 0; i < updatePayload.length; i += 2) { // key, value 成对出现
26
+ var key = updatePayload[i];
27
+ var newProp = updatePayload[i + 1];
28
+ var oldProp = oldProps[key];
29
+ setProperty(dom, key, newProp, oldProp);
30
+ }
31
+ }
32
+ function getUpdatePayload(dom, oldProps, newProps) {
38
33
  var i;
34
+ var updatePayload = null;
39
35
  for (i in oldProps) {
40
36
  if (!(i in newProps)) {
41
- setProperty(dom, i, null, oldProps[i]);
37
+ (updatePayload = updatePayload || []).push(i, null);
42
38
  }
43
39
  }
44
40
  var isFormElement = dom instanceof runtime.FormElement;
45
41
  for (i in newProps) {
46
42
  if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {
47
- setProperty(dom, i, newProps[i], oldProps[i]);
43
+ (updatePayload = updatePayload || []).push(i, newProps[i]);
48
44
  }
49
45
  }
46
+ return updatePayload;
50
47
  }
51
48
  // function eventProxy (e: CommonEvent) {
52
49
  // const el = document.getElementById(e.currentTarget.id)
@@ -144,47 +141,92 @@ function setProperty(dom, name, value, oldValue) {
144
141
  }
145
142
 
146
143
  /* eslint-disable @typescript-eslint/indent */
147
- var now = scheduler__namespace.unstable_now;
148
- function returnFalse() {
149
- return false;
150
- }
151
144
  var hostConfig = {
152
- createInstance: function createInstance(type) {
153
- return runtime.document.createElement(type);
154
- },
155
- createTextInstance: function createTextInstance(text) {
156
- return runtime.document.createTextNode(text);
157
- },
145
+ // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.
146
+ // -------------------
147
+ // required by @types/react-reconciler
148
+ // -------------------
158
149
  getPublicInstance: function getPublicInstance(inst) {
159
150
  return inst;
160
151
  },
161
152
  getRootHostContext: function getRootHostContext() {
162
153
  return {};
163
154
  },
164
- getChildHostContext: function getChildHostContext() {
165
- return {};
155
+ getChildHostContext: function getChildHostContext(parentHostContext) {
156
+ return parentHostContext;
166
157
  },
167
- getCurrentEventPriority: function getCurrentEventPriority() {
168
- // 因 @types/react-reconciler 未更新,ts会报错,这里直接返回16
169
- return 16; // import { DefaultEventPriority } from 'react-reconciler/constants'
158
+ prepareForCommit: function prepareForCommit() {
159
+
160
+ return null;
170
161
  },
171
- detachDeletedInstance: function detachDeletedInstance() {
172
- // noop
162
+ resetAfterCommit: shared.noop,
163
+ createInstance: function createInstance(type) {
164
+ return runtime.document.createElement(type);
173
165
  },
174
- appendChild: function appendChild(parent, child) {
166
+ appendInitialChild: function appendInitialChild(parent, child) {
175
167
  parent.appendChild(child);
176
168
  },
177
- appendInitialChild: function appendInitialChild(parent, child) {
169
+ finalizeInitialChildren: function finalizeInitialChildren(dom, _, props) {
170
+ updateProps(dom, {}, props); // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息
171
+ return false;
172
+ },
173
+ prepareUpdate: function prepareUpdate(instance, _, oldProps, newProps) {
174
+ return getUpdatePayload(instance, oldProps, newProps);
175
+ },
176
+ shouldSetTextContent: function shouldSetTextContent() {
177
+ return false;
178
+ },
179
+ createTextInstance: function createTextInstance(text) {
180
+ return runtime.document.createTextNode(text);
181
+ },
182
+ scheduleTimeout: setTimeout,
183
+ cancelTimeout: clearTimeout,
184
+ noTimeout: -1,
185
+ isPrimaryRenderer: true,
186
+ warnsIfNotActing: true,
187
+ supportsMutation: true,
188
+ supportsPersistence: false,
189
+ supportsHydration: false,
190
+ getInstanceFromNode: function () { return null; },
191
+ beforeActiveInstanceBlur: shared.noop,
192
+ afterActiveInstanceBlur: shared.noop,
193
+ preparePortalMount: shared.noop,
194
+ prepareScopeUpdate: shared.noop,
195
+ getInstanceFromScope: function () { return null; },
196
+ getCurrentEventPriority: function getCurrentEventPriority() {
197
+ return constants.DefaultEventPriority;
198
+ },
199
+ detachDeletedInstance: shared.noop,
200
+ // -------------------
201
+ // Microtasks
202
+ // (optional)
203
+ // -------------------
204
+ supportsMicrotasks: true,
205
+ scheduleMicrotask: shared.isUndefined(Promise)
206
+ ? setTimeout
207
+ : function (callback) { return Promise.resolve(null)
208
+ .then(callback)
209
+ .catch(function (error) {
210
+ setTimeout(function () {
211
+ throw error;
212
+ });
213
+ }); },
214
+ // -------------------
215
+ // Mutation
216
+ // (required if supportsMutation is true)
217
+ // -------------------
218
+ appendChild: function appendChild(parent, child) {
178
219
  parent.appendChild(child);
179
220
  },
180
221
  appendChildToContainer: function appendChildToContainer(parent, child) {
181
222
  parent.appendChild(child);
182
223
  },
183
- removeChild: function removeChild(parent, child) {
184
- parent.removeChild(child);
224
+ commitTextUpdate: function commitTextUpdate(textInst, _, newText) {
225
+ textInst.nodeValue = newText;
185
226
  },
186
- removeChildFromContainer: function removeChildFromContainer(parent, child) {
187
- parent.removeChild(child);
227
+ commitMount: shared.noop,
228
+ commitUpdate: function commitUpdate(dom, updatePayload, _, oldProps) {
229
+ updatePropsByPayload(dom, oldProps, updatePayload);
188
230
  },
189
231
  insertBefore: function insertBefore(parent, child, refChild) {
190
232
  parent.insertBefore(child, refChild);
@@ -192,23 +234,20 @@ var hostConfig = {
192
234
  insertInContainerBefore: function insertInContainerBefore(parent, child, refChild) {
193
235
  parent.insertBefore(child, refChild);
194
236
  },
195
- commitTextUpdate: function commitTextUpdate(textInst, _, newText) {
196
- textInst.nodeValue = newText;
197
- },
198
- finalizeInitialChildren: function finalizeInitialChildren(dom, _, props) {
199
- updateProps(dom, {}, props);
200
- return false;
201
- },
202
- prepareUpdate: function prepareUpdate() {
203
- return shared.EMPTY_ARR;
237
+ removeChild: function removeChild(parent, child) {
238
+ parent.removeChild(child);
204
239
  },
205
- commitUpdate: function commitUpdate(dom, _payload, _type, oldProps, newProps) {
206
- updateProps(dom, oldProps, newProps);
240
+ removeChildFromContainer: function removeChildFromContainer(parent, child) {
241
+ parent.removeChild(child);
207
242
  },
243
+ resetTextContent: shared.noop,
208
244
  hideInstance: function hideInstance(instance) {
209
245
  var style = instance.style;
210
246
  style.setProperty('display', 'none');
211
247
  },
248
+ hideTextInstance: function hideTextInstance(textInstance) {
249
+ textInstance.nodeValue = '';
250
+ },
212
251
  unhideInstance: function unhideInstance(instance, props) {
213
252
  var styleProp = props.style;
214
253
  var display = (styleProp === null || styleProp === void 0 ? void 0 : styleProp.hasOwnProperty('display')) ? styleProp.display : null;
@@ -216,55 +255,71 @@ var hostConfig = {
216
255
  // eslint-disable-next-line dot-notation
217
256
  instance.style['display'] = display;
218
257
  },
258
+ unhideTextInstance: function unhideTextInstance(textInstance, text) {
259
+ textInstance.nodeValue = text;
260
+ },
219
261
  clearContainer: function clearContainer(element) {
220
262
  if (element.childNodes.length > 0) {
221
263
  element.textContent = '';
222
264
  }
223
265
  },
224
- queueMicrotask: !shared.isUndefined(Promise)
225
- ? function (callback) { return Promise.resolve(null)
226
- .then(callback)
227
- .catch(function (error) {
228
- setTimeout(function () {
229
- throw error;
230
- });
231
- }); }
232
- : setTimeout,
233
- shouldSetTextContent: returnFalse,
234
- prepareForCommit: function prepareForCommit() {
235
- return null; },
236
- resetAfterCommit: shared.noop,
237
- commitMount: shared.noop,
238
- now: now,
239
- cancelTimeout: clearTimeout,
240
- scheduleTimeout: setTimeout,
241
- preparePortalMount: shared.noop,
242
- noTimeout: -1,
243
- supportsMutation: true,
244
- supportsPersistence: false,
245
- isPrimaryRenderer: true,
246
- supportsHydration: false
247
266
  };
248
267
  var TaroReconciler = Reconciler__default["default"](hostConfig);
249
268
  if (process.env.NODE_ENV !== 'production') {
250
269
  var foundDevTools = TaroReconciler.injectIntoDevTools({
251
270
  bundleType: 1,
252
271
  version: '18.0.0',
253
- rendererPackageName: 'taro-react'
272
+ rendererPackageName: 'taro-react',
254
273
  });
255
274
  if (!foundDevTools) {
256
275
  // eslint-disable-next-line no-console
257
- console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools', 'font-weight:bold');
276
+ console.info('%cDownload the React DevTools ' +
277
+ 'for a better development experience: ' +
278
+ 'https://reactjs.org/link/react-devtools', 'font-weight:bold');
258
279
  }
259
280
  }
260
281
 
261
282
  var ContainerMap = new WeakMap();
262
- var Root = function Root(renderer, domContainer, isConcurrentRoot) {
263
- if ( isConcurrentRoot === void 0 ) isConcurrentRoot = false;
264
-
283
+ var Root = function Root(renderer, domContainer, options) {
265
284
  this.renderer = renderer;
266
- /** ConcurrentRoot & LegacyRoot: react-reconciler/src/ReactRootTags.js */
267
- this.internalRoot = renderer.createContainer(domContainer, isConcurrentRoot ? 1 : 0, false, null);
285
+ this.initInternalRoot(renderer, domContainer, options);
286
+ };
287
+ Root.prototype.initInternalRoot = function initInternalRoot (renderer, domContainer, options) {
288
+ // Since react-reconciler v0.27, createContainer need more parameters
289
+ // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248
290
+ var containerInfo = domContainer;
291
+ if (options) {
292
+ var tag = 1; // ConcurrentRoot
293
+ var concurrentUpdatesByDefaultOverride = false;
294
+ var isStrictMode = false;
295
+ var identifierPrefix = '';
296
+ var onRecoverableError = function (error) { return console.error(error); };
297
+ var transitionCallbacks = null;
298
+ if (options.unstable_strictMode === true) {
299
+ isStrictMode = true;
300
+ }
301
+ if (options.identifierPrefix !== undefined) {
302
+ identifierPrefix = options.identifierPrefix;
303
+ }
304
+ if (options.onRecoverableError !== undefined) {
305
+ onRecoverableError = options.onRecoverableError;
306
+ }
307
+ if (options.unstable_transitionCallbacks !== undefined) {
308
+ transitionCallbacks = options.unstable_transitionCallbacks;
309
+ }
310
+ this.internalRoot = renderer.createContainer(containerInfo, tag, null, // hydrationCallbacks
311
+ isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError, transitionCallbacks);
312
+ }
313
+ else {
314
+ var tag$1 = 0; // LegacyRoot
315
+ this.internalRoot = renderer.createContainer(containerInfo, tag$1, null, // hydrationCallbacks
316
+ false, // isStrictMode
317
+ false, // concurrentUpdatesByDefaultOverride,
318
+ '', // identifierPrefix
319
+ function () { }, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.
320
+ null // transitionCallbacks
321
+ );
322
+ }
268
323
  };
269
324
  Root.prototype.render = function render (children, cb) {
270
325
  var ref = this;
@@ -285,12 +340,15 @@ function render(element, domContainer, cb) {
285
340
  ContainerMap.set(domContainer, root);
286
341
  return root.render(element, cb);
287
342
  }
288
- function createRoot(domContainer) {
343
+ function createRoot(domContainer, options) {
344
+ if ( options === void 0 ) options = {};
345
+
289
346
  var oldRoot = ContainerMap.get(domContainer);
290
347
  if (oldRoot != null) {
291
348
  return oldRoot;
292
349
  }
293
- var root = new Root(TaroReconciler, domContainer, true);
350
+ // options should be an object
351
+ var root = new Root(TaroReconciler, domContainer, options);
294
352
  ContainerMap.set(domContainer, root);
295
353
  return root;
296
354
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/props.ts","../src/reconciler.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["import { FormElement, Style, TaroElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nconst IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n let i: string\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n setProperty(dom, i, null, oldProps[i])\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n setProperty(dom, i, newProps[i], oldProps[i])\n }\n }\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: string | number) {\n if (key[0] === '-') {\n style.setProperty(key, value.toString())\n // css variables need not further judgment\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? value + 'px'\n : value == null\n ? ''\n : value\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || value[i] !== (oldValue as StyleValue)[i]) {\n setStyle(style, i, value[i])\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, value as string)\n }\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document, TaroElement, TaroText } from '@tarojs/runtime'\nimport { EMPTY_ARR, isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler, { HostConfig } from 'react-reconciler'\nimport * as scheduler from 'scheduler'\n\nimport { Props, updateProps } from './props'\n\nconst {\n unstable_now: now\n} = scheduler\n\nfunction returnFalse () {\n return false\n}\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n hideInstance (instance: TaroElement): void\n unhideInstance (instance: TaroElement, props): void\n getCurrentEventPriority(): number\n detachDeletedInstance(): void\n} = {\n createInstance (type) {\n return document.createElement(type)\n },\n\n createTextInstance (text) {\n return document.createTextNode(text)\n },\n\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n\n getRootHostContext () {\n return {}\n },\n\n getChildHostContext () {\n return {}\n },\n\n getCurrentEventPriority () {\n // 因 @types/react-reconciler 未更新,ts会报错,这里直接返回16\n return 16 // import { DefaultEventPriority } from 'react-reconciler/constants'\n },\n\n detachDeletedInstance () {\n // noop\n },\n\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n\n finalizeInitialChildren (dom, _, props) {\n updateProps(dom, {}, props)\n return false\n },\n\n prepareUpdate () {\n return EMPTY_ARR\n },\n\n commitUpdate (dom, _payload, _type, oldProps, newProps) {\n updateProps(dom, oldProps, newProps)\n },\n\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n\n unhideInstance (instance, props) {\n const styleProp = props.style\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n },\n\n queueMicrotask: !isUndefined(Promise)\n ? callback =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n })\n : setTimeout,\n\n shouldSetTextContent: returnFalse,\n prepareForCommit (..._: any[]) { return null },\n resetAfterCommit: noop,\n commitMount: noop,\n now,\n cancelTimeout: clearTimeout,\n scheduleTimeout: setTimeout,\n preparePortalMount: noop,\n noTimeout: -1,\n supportsMutation: true,\n supportsPersistence: false,\n isPrimaryRenderer: true,\n supportsHydration: false\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react'\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools', 'font-weight:bold')\n }\n}\n\nexport {\n TaroReconciler\n}\n","import { TaroElement } from '@tarojs/runtime'\nimport { ReactNode } from 'react'\nimport { OpaqueRoot } from 'react-reconciler'\n\nimport { TaroReconciler } from './reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n private internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, isConcurrentRoot = false) {\n this.renderer = renderer\n /** ConcurrentRoot & LegacyRoot: react-reconciler/src/ReactRootTags.js */\n this.internalRoot = renderer.createContainer(domContainer, isConcurrentRoot ? 1 : 0, false, null)\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n const root = new Root(TaroReconciler, domContainer, true)\n ContainerMap.set(domContainer, root)\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { TaroElement } from '@tarojs/runtime'\nimport { ensure, isFunction } from '@tarojs/shared'\nimport { ReactNode } from 'react'\n\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nconst unstable_batchedUpdates = TaroReconciler.batchedUpdates\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":["const","let","FormElement","capitalize","toCamelCase","internalComponents","isFunction","isNumber","isString","isObject","i","scheduler","document","EMPTY_ARR","isBoolean","isUndefined","noop","Reconciler","ensure"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/props.ts","../src/reconciler.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["import { FormElement, Style, TaroElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nconst IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n const updatePayload = getUpdatePayload(dom, oldProps, newProps)\n if(updatePayload){\n updatePropsByPayload(dom, oldProps, updatePayload)\n }\n}\n\nexport function updatePropsByPayload (dom: TaroElement, oldProps: Props, updatePayload: any[]){\n for(let i = 0; i < updatePayload.length; i += 2){ // key, value 成对出现\n const key = updatePayload[i]; const newProp = updatePayload[i+1]; const oldProp = oldProps[key]\n setProperty(dom, key, newProp, oldProp)\n }\n}\n\nexport function getUpdatePayload (dom: TaroElement, oldProps: Props, newProps: Props){\n let i: string\n let updatePayload: any[] | null = null\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n (updatePayload = updatePayload || []).push(i, null)\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n (updatePayload = updatePayload || []).push(i, newProps[i])\n }\n }\n\n return updatePayload\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: string | number) {\n if (key[0] === '-') {\n style.setProperty(key, value.toString())\n // css variables need not further judgment\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? value + 'px'\n : value == null\n ? ''\n : value\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || value[i] !== (oldValue as StyleValue)[i]) {\n setStyle(style, i, value[i])\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, value as string)\n }\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document, TaroElement, TaroText } from '@tarojs/runtime'\nimport { isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler, { HostConfig } from 'react-reconciler'\nimport { DefaultEventPriority } from 'react-reconciler/constants'\n\nimport { getUpdatePayload, Props, updateProps, updatePropsByPayload } from './props'\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n supportsMicrotasks: boolean // 待官方类型文件修复后删除\n} = {\n // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.\n\n // -------------------\n // required by @types/react-reconciler\n // -------------------\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n getRootHostContext () {\n return {}\n },\n getChildHostContext (parentHostContext) {\n return parentHostContext\n },\n prepareForCommit (..._: any[]) {\n return null\n },\n resetAfterCommit: noop,\n createInstance (type) {\n return document.createElement(type)\n },\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n finalizeInitialChildren (dom, _, props: any) {\n updateProps(dom, {}, props) // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息\n return false\n },\n prepareUpdate (instance, _, oldProps, newProps) {\n return getUpdatePayload(instance, oldProps, newProps)\n },\n shouldSetTextContent () {\n return false\n },\n createTextInstance (text) {\n return document.createTextNode(text)\n },\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n isPrimaryRenderer: true,\n warnsIfNotActing: true,\n supportsMutation: true,\n supportsPersistence: false,\n supportsHydration: false,\n getInstanceFromNode: () => null,\n beforeActiveInstanceBlur: noop,\n afterActiveInstanceBlur: noop,\n preparePortalMount: noop,\n prepareScopeUpdate: noop,\n getInstanceFromScope: () => null,\n getCurrentEventPriority () {\n return DefaultEventPriority\n },\n detachDeletedInstance: noop,\n\n // -------------------\n // Microtasks\n // (optional)\n // -------------------\n supportsMicrotasks: true,\n scheduleMicrotask: isUndefined(Promise)\n ? setTimeout\n : (callback) =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n }),\n\n // -------------------\n // Mutation\n // (required if supportsMutation is true)\n // -------------------\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n commitMount: noop,\n commitUpdate (dom, updatePayload, _, oldProps) {\n updatePropsByPayload(dom, oldProps, updatePayload)\n },\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n resetTextContent: noop,\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n hideTextInstance (textInstance) {\n textInstance.nodeValue = ''\n },\n unhideInstance (instance, props) {\n const styleProp = props.style as {display?: any}\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n unhideTextInstance (textInstance, text) {\n textInstance.nodeValue = text\n },\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n },\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react',\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info(\n '%cDownload the React DevTools ' +\n 'for a better development experience: ' +\n 'https://reactjs.org/link/react-devtools',\n 'font-weight:bold'\n )\n }\n}\n\nexport { TaroReconciler }\n","import { TaroElement } from '@tarojs/runtime'\nimport { ReactNode } from 'react'\nimport { OpaqueRoot } from 'react-reconciler'\n\nimport { TaroReconciler } from './reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\ntype CreateRootOptions = {\n unstable_strictMode?: boolean\n unstable_concurrentUpdatesByDefault?: boolean\n unstable_transitionCallbacks?: any\n identifierPrefix?: string\n onRecoverableError?: (error: any) => void\n}\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n private internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n this.renderer = renderer\n this.initInternalRoot(renderer, domContainer, options)\n }\n\n private initInternalRoot (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n // Since react-reconciler v0.27, createContainer need more parameters\n // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248\n const containerInfo = domContainer\n if (options) {\n const tag = 1 // ConcurrentRoot\n const concurrentUpdatesByDefaultOverride = false\n let isStrictMode = false\n let identifierPrefix = ''\n let onRecoverableError = (error: any) => console.error(error)\n let transitionCallbacks = null\n if (options.unstable_strictMode === true) {\n isStrictMode = true\n }\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix\n }\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError\n }\n if (options.unstable_transitionCallbacks !== undefined) {\n transitionCallbacks = options.unstable_transitionCallbacks\n }\n\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n isStrictMode,\n concurrentUpdatesByDefaultOverride,\n identifierPrefix,\n onRecoverableError,\n transitionCallbacks\n )\n } else {\n const tag = 0 // LegacyRoot\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n false, // isStrictMode\n false, // concurrentUpdatesByDefaultOverride,\n '', // identifierPrefix\n () => {}, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.\n null // transitionCallbacks\n )\n }\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement, options: CreateRootOptions = {}) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n // options should be an object\n const root = new Root(TaroReconciler, domContainer, options)\n ContainerMap.set(domContainer, root)\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { TaroElement } from '@tarojs/runtime'\nimport { ensure, isFunction } from '@tarojs/shared'\nimport { ReactNode } from 'react'\n\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nconst unstable_batchedUpdates = TaroReconciler.batchedUpdates\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":["const","let","FormElement","capitalize","toCamelCase","internalComponents","isFunction","isNumber","isString","isObject","i","noop","document","DefaultEventPriority","isUndefined","isBoolean","Reconciler","tag","ensure"],"mappings":"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"}
package/dist/react.esm.js CHANGED
@@ -1,25 +1,41 @@
1
- import { isString, isObject, isFunction, capitalize, toCamelCase, internalComponents, isNumber, EMPTY_ARR, isBoolean, isUndefined, noop, ensure } from '@tarojs/shared';
1
+ import { isString, isObject, isFunction, capitalize, toCamelCase, internalComponents, isNumber, noop, isUndefined, isBoolean, ensure } from '@tarojs/shared';
2
2
  import { FormElement, document } from '@tarojs/runtime';
3
3
  import Reconciler from 'react-reconciler';
4
- import * as scheduler from 'scheduler';
4
+ import { DefaultEventPriority } from 'react-reconciler/constants';
5
5
 
6
6
  function isEventName(s) {
7
7
  return s[0] === 'o' && s[1] === 'n';
8
8
  }
9
9
  const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
10
10
  function updateProps(dom, oldProps, newProps) {
11
+ const updatePayload = getUpdatePayload(dom, oldProps, newProps);
12
+ if (updatePayload) {
13
+ updatePropsByPayload(dom, oldProps, updatePayload);
14
+ }
15
+ }
16
+ function updatePropsByPayload(dom, oldProps, updatePayload) {
17
+ for (let i = 0; i < updatePayload.length; i += 2) { // key, value 成对出现
18
+ const key = updatePayload[i];
19
+ const newProp = updatePayload[i + 1];
20
+ const oldProp = oldProps[key];
21
+ setProperty(dom, key, newProp, oldProp);
22
+ }
23
+ }
24
+ function getUpdatePayload(dom, oldProps, newProps) {
11
25
  let i;
26
+ let updatePayload = null;
12
27
  for (i in oldProps) {
13
28
  if (!(i in newProps)) {
14
- setProperty(dom, i, null, oldProps[i]);
29
+ (updatePayload = updatePayload || []).push(i, null);
15
30
  }
16
31
  }
17
32
  const isFormElement = dom instanceof FormElement;
18
33
  for (i in newProps) {
19
34
  if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {
20
- setProperty(dom, i, newProps[i], oldProps[i]);
35
+ (updatePayload = updatePayload || []).push(i, newProps[i]);
21
36
  }
22
37
  }
38
+ return updatePayload;
23
39
  }
24
40
  // function eventProxy (e: CommonEvent) {
25
41
  // const el = document.getElementById(e.currentTarget.id)
@@ -117,47 +133,91 @@ function setProperty(dom, name, value, oldValue) {
117
133
  }
118
134
 
119
135
  /* eslint-disable @typescript-eslint/indent */
120
- const { unstable_now: now } = scheduler;
121
- function returnFalse() {
122
- return false;
123
- }
124
136
  const hostConfig = {
125
- createInstance(type) {
126
- return document.createElement(type);
127
- },
128
- createTextInstance(text) {
129
- return document.createTextNode(text);
130
- },
137
+ // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.
138
+ // -------------------
139
+ // required by @types/react-reconciler
140
+ // -------------------
131
141
  getPublicInstance(inst) {
132
142
  return inst;
133
143
  },
134
144
  getRootHostContext() {
135
145
  return {};
136
146
  },
137
- getChildHostContext() {
138
- return {};
147
+ getChildHostContext(parentHostContext) {
148
+ return parentHostContext;
139
149
  },
140
- getCurrentEventPriority() {
141
- // 因 @types/react-reconciler 未更新,ts会报错,这里直接返回16
142
- return 16; // import { DefaultEventPriority } from 'react-reconciler/constants'
150
+ prepareForCommit(..._) {
151
+ return null;
143
152
  },
144
- detachDeletedInstance() {
145
- // noop
153
+ resetAfterCommit: noop,
154
+ createInstance(type) {
155
+ return document.createElement(type);
146
156
  },
147
- appendChild(parent, child) {
157
+ appendInitialChild(parent, child) {
148
158
  parent.appendChild(child);
149
159
  },
150
- appendInitialChild(parent, child) {
160
+ finalizeInitialChildren(dom, _, props) {
161
+ updateProps(dom, {}, props); // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息
162
+ return false;
163
+ },
164
+ prepareUpdate(instance, _, oldProps, newProps) {
165
+ return getUpdatePayload(instance, oldProps, newProps);
166
+ },
167
+ shouldSetTextContent() {
168
+ return false;
169
+ },
170
+ createTextInstance(text) {
171
+ return document.createTextNode(text);
172
+ },
173
+ scheduleTimeout: setTimeout,
174
+ cancelTimeout: clearTimeout,
175
+ noTimeout: -1,
176
+ isPrimaryRenderer: true,
177
+ warnsIfNotActing: true,
178
+ supportsMutation: true,
179
+ supportsPersistence: false,
180
+ supportsHydration: false,
181
+ getInstanceFromNode: () => null,
182
+ beforeActiveInstanceBlur: noop,
183
+ afterActiveInstanceBlur: noop,
184
+ preparePortalMount: noop,
185
+ prepareScopeUpdate: noop,
186
+ getInstanceFromScope: () => null,
187
+ getCurrentEventPriority() {
188
+ return DefaultEventPriority;
189
+ },
190
+ detachDeletedInstance: noop,
191
+ // -------------------
192
+ // Microtasks
193
+ // (optional)
194
+ // -------------------
195
+ supportsMicrotasks: true,
196
+ scheduleMicrotask: isUndefined(Promise)
197
+ ? setTimeout
198
+ : (callback) => Promise.resolve(null)
199
+ .then(callback)
200
+ .catch(function (error) {
201
+ setTimeout(() => {
202
+ throw error;
203
+ });
204
+ }),
205
+ // -------------------
206
+ // Mutation
207
+ // (required if supportsMutation is true)
208
+ // -------------------
209
+ appendChild(parent, child) {
151
210
  parent.appendChild(child);
152
211
  },
153
212
  appendChildToContainer(parent, child) {
154
213
  parent.appendChild(child);
155
214
  },
156
- removeChild(parent, child) {
157
- parent.removeChild(child);
215
+ commitTextUpdate(textInst, _, newText) {
216
+ textInst.nodeValue = newText;
158
217
  },
159
- removeChildFromContainer(parent, child) {
160
- parent.removeChild(child);
218
+ commitMount: noop,
219
+ commitUpdate(dom, updatePayload, _, oldProps) {
220
+ updatePropsByPayload(dom, oldProps, updatePayload);
161
221
  },
162
222
  insertBefore(parent, child, refChild) {
163
223
  parent.insertBefore(child, refChild);
@@ -165,23 +225,20 @@ const hostConfig = {
165
225
  insertInContainerBefore(parent, child, refChild) {
166
226
  parent.insertBefore(child, refChild);
167
227
  },
168
- commitTextUpdate(textInst, _, newText) {
169
- textInst.nodeValue = newText;
170
- },
171
- finalizeInitialChildren(dom, _, props) {
172
- updateProps(dom, {}, props);
173
- return false;
174
- },
175
- prepareUpdate() {
176
- return EMPTY_ARR;
228
+ removeChild(parent, child) {
229
+ parent.removeChild(child);
177
230
  },
178
- commitUpdate(dom, _payload, _type, oldProps, newProps) {
179
- updateProps(dom, oldProps, newProps);
231
+ removeChildFromContainer(parent, child) {
232
+ parent.removeChild(child);
180
233
  },
234
+ resetTextContent: noop,
181
235
  hideInstance(instance) {
182
236
  const style = instance.style;
183
237
  style.setProperty('display', 'none');
184
238
  },
239
+ hideTextInstance(textInstance) {
240
+ textInstance.nodeValue = '';
241
+ },
185
242
  unhideInstance(instance, props) {
186
243
  const styleProp = props.style;
187
244
  let display = (styleProp === null || styleProp === void 0 ? void 0 : styleProp.hasOwnProperty('display')) ? styleProp.display : null;
@@ -189,53 +246,72 @@ const hostConfig = {
189
246
  // eslint-disable-next-line dot-notation
190
247
  instance.style['display'] = display;
191
248
  },
249
+ unhideTextInstance(textInstance, text) {
250
+ textInstance.nodeValue = text;
251
+ },
192
252
  clearContainer(element) {
193
253
  if (element.childNodes.length > 0) {
194
254
  element.textContent = '';
195
255
  }
196
256
  },
197
- queueMicrotask: !isUndefined(Promise)
198
- ? callback => Promise.resolve(null)
199
- .then(callback)
200
- .catch(function (error) {
201
- setTimeout(() => {
202
- throw error;
203
- });
204
- })
205
- : setTimeout,
206
- shouldSetTextContent: returnFalse,
207
- prepareForCommit(..._) { return null; },
208
- resetAfterCommit: noop,
209
- commitMount: noop,
210
- now,
211
- cancelTimeout: clearTimeout,
212
- scheduleTimeout: setTimeout,
213
- preparePortalMount: noop,
214
- noTimeout: -1,
215
- supportsMutation: true,
216
- supportsPersistence: false,
217
- isPrimaryRenderer: true,
218
- supportsHydration: false
219
257
  };
220
258
  const TaroReconciler = Reconciler(hostConfig);
221
259
  if (process.env.NODE_ENV !== 'production') {
222
260
  const foundDevTools = TaroReconciler.injectIntoDevTools({
223
261
  bundleType: 1,
224
262
  version: '18.0.0',
225
- rendererPackageName: 'taro-react'
263
+ rendererPackageName: 'taro-react',
226
264
  });
227
265
  if (!foundDevTools) {
228
266
  // eslint-disable-next-line no-console
229
- console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools', 'font-weight:bold');
267
+ console.info('%cDownload the React DevTools ' +
268
+ 'for a better development experience: ' +
269
+ 'https://reactjs.org/link/react-devtools', 'font-weight:bold');
230
270
  }
231
271
  }
232
272
 
233
273
  const ContainerMap = new WeakMap();
234
274
  class Root {
235
- constructor(renderer, domContainer, isConcurrentRoot = false) {
275
+ constructor(renderer, domContainer, options) {
236
276
  this.renderer = renderer;
237
- /** ConcurrentRoot & LegacyRoot: react-reconciler/src/ReactRootTags.js */
238
- this.internalRoot = renderer.createContainer(domContainer, isConcurrentRoot ? 1 : 0, false, null);
277
+ this.initInternalRoot(renderer, domContainer, options);
278
+ }
279
+ initInternalRoot(renderer, domContainer, options) {
280
+ // Since react-reconciler v0.27, createContainer need more parameters
281
+ // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248
282
+ const containerInfo = domContainer;
283
+ if (options) {
284
+ const tag = 1; // ConcurrentRoot
285
+ const concurrentUpdatesByDefaultOverride = false;
286
+ let isStrictMode = false;
287
+ let identifierPrefix = '';
288
+ let onRecoverableError = (error) => console.error(error);
289
+ let transitionCallbacks = null;
290
+ if (options.unstable_strictMode === true) {
291
+ isStrictMode = true;
292
+ }
293
+ if (options.identifierPrefix !== undefined) {
294
+ identifierPrefix = options.identifierPrefix;
295
+ }
296
+ if (options.onRecoverableError !== undefined) {
297
+ onRecoverableError = options.onRecoverableError;
298
+ }
299
+ if (options.unstable_transitionCallbacks !== undefined) {
300
+ transitionCallbacks = options.unstable_transitionCallbacks;
301
+ }
302
+ this.internalRoot = renderer.createContainer(containerInfo, tag, null, // hydrationCallbacks
303
+ isStrictMode, concurrentUpdatesByDefaultOverride, identifierPrefix, onRecoverableError, transitionCallbacks);
304
+ }
305
+ else {
306
+ const tag = 0; // LegacyRoot
307
+ this.internalRoot = renderer.createContainer(containerInfo, tag, null, // hydrationCallbacks
308
+ false, // isStrictMode
309
+ false, // concurrentUpdatesByDefaultOverride,
310
+ '', // identifierPrefix
311
+ () => { }, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.
312
+ null // transitionCallbacks
313
+ );
314
+ }
239
315
  }
240
316
  render(children, cb) {
241
317
  const { renderer, internalRoot } = this;
@@ -255,12 +331,13 @@ function render(element, domContainer, cb) {
255
331
  ContainerMap.set(domContainer, root);
256
332
  return root.render(element, cb);
257
333
  }
258
- function createRoot(domContainer) {
334
+ function createRoot(domContainer, options = {}) {
259
335
  const oldRoot = ContainerMap.get(domContainer);
260
336
  if (oldRoot != null) {
261
337
  return oldRoot;
262
338
  }
263
- const root = new Root(TaroReconciler, domContainer, true);
339
+ // options should be an object
340
+ const root = new Root(TaroReconciler, domContainer, options);
264
341
  ContainerMap.set(domContainer, root);
265
342
  return root;
266
343
  }
@@ -1 +1 @@
1
- {"version":3,"file":"react.esm.js","sources":["../src/props.ts","../src/reconciler.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["import { FormElement, Style, TaroElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nconst IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n let i: string\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n setProperty(dom, i, null, oldProps[i])\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n setProperty(dom, i, newProps[i], oldProps[i])\n }\n }\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: string | number) {\n if (key[0] === '-') {\n style.setProperty(key, value.toString())\n // css variables need not further judgment\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? value + 'px'\n : value == null\n ? ''\n : value\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || value[i] !== (oldValue as StyleValue)[i]) {\n setStyle(style, i, value[i])\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, value as string)\n }\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document, TaroElement, TaroText } from '@tarojs/runtime'\nimport { EMPTY_ARR, isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler, { HostConfig } from 'react-reconciler'\nimport * as scheduler from 'scheduler'\n\nimport { Props, updateProps } from './props'\n\nconst {\n unstable_now: now\n} = scheduler\n\nfunction returnFalse () {\n return false\n}\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n hideInstance (instance: TaroElement): void\n unhideInstance (instance: TaroElement, props): void\n getCurrentEventPriority(): number\n detachDeletedInstance(): void\n} = {\n createInstance (type) {\n return document.createElement(type)\n },\n\n createTextInstance (text) {\n return document.createTextNode(text)\n },\n\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n\n getRootHostContext () {\n return {}\n },\n\n getChildHostContext () {\n return {}\n },\n\n getCurrentEventPriority () {\n // 因 @types/react-reconciler 未更新,ts会报错,这里直接返回16\n return 16 // import { DefaultEventPriority } from 'react-reconciler/constants'\n },\n\n detachDeletedInstance () {\n // noop\n },\n\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n\n finalizeInitialChildren (dom, _, props) {\n updateProps(dom, {}, props)\n return false\n },\n\n prepareUpdate () {\n return EMPTY_ARR\n },\n\n commitUpdate (dom, _payload, _type, oldProps, newProps) {\n updateProps(dom, oldProps, newProps)\n },\n\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n\n unhideInstance (instance, props) {\n const styleProp = props.style\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n },\n\n queueMicrotask: !isUndefined(Promise)\n ? callback =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n })\n : setTimeout,\n\n shouldSetTextContent: returnFalse,\n prepareForCommit (..._: any[]) { return null },\n resetAfterCommit: noop,\n commitMount: noop,\n now,\n cancelTimeout: clearTimeout,\n scheduleTimeout: setTimeout,\n preparePortalMount: noop,\n noTimeout: -1,\n supportsMutation: true,\n supportsPersistence: false,\n isPrimaryRenderer: true,\n supportsHydration: false\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react'\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools', 'font-weight:bold')\n }\n}\n\nexport {\n TaroReconciler\n}\n","import { TaroElement } from '@tarojs/runtime'\nimport { ReactNode } from 'react'\nimport { OpaqueRoot } from 'react-reconciler'\n\nimport { TaroReconciler } from './reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n private internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, isConcurrentRoot = false) {\n this.renderer = renderer\n /** ConcurrentRoot & LegacyRoot: react-reconciler/src/ReactRootTags.js */\n this.internalRoot = renderer.createContainer(domContainer, isConcurrentRoot ? 1 : 0, false, null)\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n const root = new Root(TaroReconciler, domContainer, true)\n ContainerMap.set(domContainer, root)\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { TaroElement } from '@tarojs/runtime'\nimport { ensure, isFunction } from '@tarojs/shared'\nimport { ReactNode } from 'react'\n\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nconst unstable_batchedUpdates = TaroReconciler.batchedUpdates\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.esm.js","sources":["../src/props.ts","../src/reconciler.ts","../src/render.ts","../src/index.ts"],"sourcesContent":["import { FormElement, Style, TaroElement } from '@tarojs/runtime'\nimport { capitalize, internalComponents, isFunction, isNumber, isObject, isString, toCamelCase } from '@tarojs/shared'\n\nexport type Props = Record<string, unknown>\n\nfunction isEventName (s: string) {\n return s[0] === 'o' && s[1] === 'n'\n}\n\nconst IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i\n\nexport function updateProps (dom: TaroElement, oldProps: Props, newProps: Props) {\n const updatePayload = getUpdatePayload(dom, oldProps, newProps)\n if(updatePayload){\n updatePropsByPayload(dom, oldProps, updatePayload)\n }\n}\n\nexport function updatePropsByPayload (dom: TaroElement, oldProps: Props, updatePayload: any[]){\n for(let i = 0; i < updatePayload.length; i += 2){ // key, value 成对出现\n const key = updatePayload[i]; const newProp = updatePayload[i+1]; const oldProp = oldProps[key]\n setProperty(dom, key, newProp, oldProp)\n }\n}\n\nexport function getUpdatePayload (dom: TaroElement, oldProps: Props, newProps: Props){\n let i: string\n let updatePayload: any[] | null = null\n\n for (i in oldProps) {\n if (!(i in newProps)) {\n (updatePayload = updatePayload || []).push(i, null)\n }\n }\n const isFormElement = dom instanceof FormElement\n for (i in newProps) {\n if (oldProps[i] !== newProps[i] || (isFormElement && i === 'value')) {\n (updatePayload = updatePayload || []).push(i, newProps[i])\n }\n }\n\n return updatePayload\n}\n\n// function eventProxy (e: CommonEvent) {\n// const el = document.getElementById(e.currentTarget.id)\n// const handlers = el!.__handlers[e.type]\n// handlers[0](e)\n// }\n\nfunction setEvent (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n const isCapture = name.endsWith('Capture')\n let eventName = name.toLowerCase().slice(2)\n if (isCapture) {\n eventName = eventName.slice(0, -7)\n }\n\n const compName = capitalize(toCamelCase(dom.tagName.toLowerCase()))\n\n if (eventName === 'click' && compName in internalComponents) {\n eventName = 'tap'\n }\n\n if (isFunction(value)) {\n if (oldValue) {\n dom.removeEventListener(eventName, oldValue as any, false)\n dom.addEventListener(eventName, value, { isCapture, sideEffect: false })\n } else {\n dom.addEventListener(eventName, value, isCapture)\n }\n } else {\n dom.removeEventListener(eventName, oldValue as any)\n }\n}\n\nfunction setStyle (style: Style, key: string, value: string | number) {\n if (key[0] === '-') {\n style.setProperty(key, value.toString())\n // css variables need not further judgment\n return\n }\n\n style[key] =\n isNumber(value) && IS_NON_DIMENSIONAL.test(key) === false\n ? value + 'px'\n : value == null\n ? ''\n : value\n}\n\ntype StyleValue = Record<string, string | number>\ninterface DangerouslySetInnerHTML {\n __html?: string\n}\n\nfunction setProperty (dom: TaroElement, name: string, value: unknown, oldValue?: unknown) {\n name = name === 'className' ? 'class' : name\n\n if (\n name === 'key' ||\n name === 'children' ||\n name === 'ref'\n ) {\n // skip\n } else if (name === 'style') {\n const style = dom.style\n if (isString(value)) {\n style.cssText = value\n } else {\n if (isString(oldValue)) {\n style.cssText = ''\n oldValue = null\n }\n\n if (isObject<StyleValue>(oldValue)) {\n for (const i in oldValue) {\n if (!(value && i in (value as StyleValue))) {\n setStyle(style, i, '')\n }\n }\n }\n\n if (isObject<StyleValue>(value)) {\n for (const i in value) {\n if (!oldValue || value[i] !== (oldValue as StyleValue)[i]) {\n setStyle(style, i, value[i])\n }\n }\n }\n }\n } else if (isEventName(name)) {\n setEvent(dom, name, value, oldValue)\n } else if (name === 'dangerouslySetInnerHTML') {\n const newHtml = (value as DangerouslySetInnerHTML)?.__html ?? ''\n const oldHtml = (oldValue as DangerouslySetInnerHTML)?.__html ?? ''\n if (newHtml || oldHtml) {\n if (oldHtml !== newHtml) {\n dom.innerHTML = newHtml\n }\n }\n } else if (!isFunction(value)) {\n if (value == null) {\n dom.removeAttribute(name)\n } else {\n dom.setAttribute(name, value as string)\n }\n }\n}\n","/* eslint-disable @typescript-eslint/indent */\nimport { document, TaroElement, TaroText } from '@tarojs/runtime'\nimport { isBoolean, isUndefined, noop } from '@tarojs/shared'\nimport Reconciler, { HostConfig } from 'react-reconciler'\nimport { DefaultEventPriority } from 'react-reconciler/constants'\n\nimport { getUpdatePayload, Props, updateProps, updatePropsByPayload } from './props'\n\nconst hostConfig: HostConfig<\n string, // Type\n Props, // Props\n TaroElement, // Container\n TaroElement, // Instance\n TaroText, // TextInstance\n TaroElement, // SuspenseInstance\n TaroElement, // HydratableInstance\n TaroElement, // PublicInstance\n Record<string, any>, // HostContext\n string[], // UpdatePayload\n unknown, // ChildSet\n unknown, // TimeoutHandle\n unknown // NoTimeout\n> & {\n supportsMicrotasks: boolean // 待官方类型文件修复后删除\n} = {\n // below keys order by {React ReactFiberHostConfig.custom.js}, convenient for comparing each other.\n\n // -------------------\n // required by @types/react-reconciler\n // -------------------\n getPublicInstance (inst: TaroElement) {\n return inst\n },\n getRootHostContext () {\n return {}\n },\n getChildHostContext (parentHostContext) {\n return parentHostContext\n },\n prepareForCommit (..._: any[]) {\n return null\n },\n resetAfterCommit: noop,\n createInstance (type) {\n return document.createElement(type)\n },\n appendInitialChild (parent, child) {\n parent.appendChild(child)\n },\n finalizeInitialChildren (dom, _, props: any) {\n updateProps(dom, {}, props) // 提前执行更新属性操作,Taro 在 Page 初始化后会立即从 dom 读取必要信息\n return false\n },\n prepareUpdate (instance, _, oldProps, newProps) {\n return getUpdatePayload(instance, oldProps, newProps)\n },\n shouldSetTextContent () {\n return false\n },\n createTextInstance (text) {\n return document.createTextNode(text)\n },\n scheduleTimeout: setTimeout,\n cancelTimeout: clearTimeout,\n noTimeout: -1,\n isPrimaryRenderer: true,\n warnsIfNotActing: true,\n supportsMutation: true,\n supportsPersistence: false,\n supportsHydration: false,\n getInstanceFromNode: () => null,\n beforeActiveInstanceBlur: noop,\n afterActiveInstanceBlur: noop,\n preparePortalMount: noop,\n prepareScopeUpdate: noop,\n getInstanceFromScope: () => null,\n getCurrentEventPriority () {\n return DefaultEventPriority\n },\n detachDeletedInstance: noop,\n\n // -------------------\n // Microtasks\n // (optional)\n // -------------------\n supportsMicrotasks: true,\n scheduleMicrotask: isUndefined(Promise)\n ? setTimeout\n : (callback) =>\n Promise.resolve(null)\n .then(callback)\n .catch(function (error) {\n setTimeout(() => {\n throw error\n })\n }),\n\n // -------------------\n // Mutation\n // (required if supportsMutation is true)\n // -------------------\n appendChild (parent, child) {\n parent.appendChild(child)\n },\n appendChildToContainer (parent, child) {\n parent.appendChild(child)\n },\n commitTextUpdate (textInst, _, newText) {\n textInst.nodeValue = newText\n },\n commitMount: noop,\n commitUpdate (dom, updatePayload, _, oldProps) {\n updatePropsByPayload(dom, oldProps, updatePayload)\n },\n insertBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n insertInContainerBefore (parent, child, refChild) {\n parent.insertBefore(child, refChild)\n },\n removeChild (parent, child) {\n parent.removeChild(child)\n },\n removeChildFromContainer (parent, child) {\n parent.removeChild(child)\n },\n resetTextContent: noop,\n hideInstance (instance) {\n const style = instance.style\n style.setProperty('display', 'none')\n },\n hideTextInstance (textInstance) {\n textInstance.nodeValue = ''\n },\n unhideInstance (instance, props) {\n const styleProp = props.style as {display?: any}\n let display = styleProp?.hasOwnProperty('display') ? styleProp.display : null\n display = display == null || isBoolean(display) || display === '' ? '' : ('' + display).trim()\n // eslint-disable-next-line dot-notation\n instance.style['display'] = display\n },\n unhideTextInstance (textInstance, text) {\n textInstance.nodeValue = text\n },\n clearContainer (element) {\n if (element.childNodes.length > 0) {\n element.textContent = ''\n }\n },\n}\n\nconst TaroReconciler = Reconciler(hostConfig)\n\nif (process.env.NODE_ENV !== 'production') {\n const foundDevTools = TaroReconciler.injectIntoDevTools({\n bundleType: 1,\n version: '18.0.0',\n rendererPackageName: 'taro-react',\n })\n if (!foundDevTools) {\n // eslint-disable-next-line no-console\n console.info(\n '%cDownload the React DevTools ' +\n 'for a better development experience: ' +\n 'https://reactjs.org/link/react-devtools',\n 'font-weight:bold'\n )\n }\n}\n\nexport { TaroReconciler }\n","import { TaroElement } from '@tarojs/runtime'\nimport { ReactNode } from 'react'\nimport { OpaqueRoot } from 'react-reconciler'\n\nimport { TaroReconciler } from './reconciler'\n\nexport const ContainerMap: WeakMap<TaroElement, Root> = new WeakMap()\n\ntype Renderer = typeof TaroReconciler\n\ntype CreateRootOptions = {\n unstable_strictMode?: boolean\n unstable_concurrentUpdatesByDefault?: boolean\n unstable_transitionCallbacks?: any\n identifierPrefix?: string\n onRecoverableError?: (error: any) => void\n}\n\nexport type Callback = () => void | null | undefined\n\nclass Root {\n private renderer: Renderer\n private internalRoot: OpaqueRoot\n\n public constructor (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n this.renderer = renderer\n this.initInternalRoot(renderer, domContainer, options)\n }\n\n private initInternalRoot (renderer: Renderer, domContainer: TaroElement, options?: CreateRootOptions) {\n // Since react-reconciler v0.27, createContainer need more parameters\n // @see:https://github.com/facebook/react/blob/0b974418c9a56f6c560298560265dcf4b65784bc/packages/react-reconciler/src/ReactFiberReconciler.js#L248\n const containerInfo = domContainer\n if (options) {\n const tag = 1 // ConcurrentRoot\n const concurrentUpdatesByDefaultOverride = false\n let isStrictMode = false\n let identifierPrefix = ''\n let onRecoverableError = (error: any) => console.error(error)\n let transitionCallbacks = null\n if (options.unstable_strictMode === true) {\n isStrictMode = true\n }\n if (options.identifierPrefix !== undefined) {\n identifierPrefix = options.identifierPrefix\n }\n if (options.onRecoverableError !== undefined) {\n onRecoverableError = options.onRecoverableError\n }\n if (options.unstable_transitionCallbacks !== undefined) {\n transitionCallbacks = options.unstable_transitionCallbacks\n }\n\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n isStrictMode,\n concurrentUpdatesByDefaultOverride,\n identifierPrefix,\n onRecoverableError,\n transitionCallbacks\n )\n } else {\n const tag = 0 // LegacyRoot\n this.internalRoot = renderer.createContainer(\n containerInfo,\n tag,\n null, // hydrationCallbacks\n false, // isStrictMode\n false, // concurrentUpdatesByDefaultOverride,\n '', // identifierPrefix\n () => {}, // onRecoverableError, this isn't reachable because onRecoverableError isn't called in the legacy API.\n null // transitionCallbacks\n )\n }\n }\n\n public render (children: ReactNode, cb: Callback) {\n const { renderer, internalRoot } = this\n renderer.updateContainer(children, internalRoot, null, cb)\n return renderer.getPublicRootInstance(internalRoot)\n }\n\n public unmount (cb: Callback) {\n this.renderer.updateContainer(null, this.internalRoot, null, cb)\n }\n}\n\nexport function render (element: ReactNode, domContainer: TaroElement, cb: Callback) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot.render(element, cb)\n }\n\n const root = new Root(TaroReconciler, domContainer)\n ContainerMap.set(domContainer, root)\n return root.render(element, cb)\n}\n\nexport function createRoot (domContainer: TaroElement, options: CreateRootOptions = {}) {\n const oldRoot = ContainerMap.get(domContainer)\n if (oldRoot != null) {\n return oldRoot\n }\n // options should be an object\n const root = new Root(TaroReconciler, domContainer, options)\n ContainerMap.set(domContainer, root)\n return root\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { TaroElement } from '@tarojs/runtime'\nimport { ensure, isFunction } from '@tarojs/shared'\nimport { ReactNode } from 'react'\n\nimport { TaroReconciler } from './reconciler'\nimport { ContainerMap, createRoot, render } from './render'\n\nconst unstable_batchedUpdates = TaroReconciler.batchedUpdates\n\nfunction unmountComponentAtNode (dom: TaroElement) {\n ensure(dom && [1, 8, 9, 11].includes(dom.nodeType), 'unmountComponentAtNode(...): Target container is not a DOM element.')\n\n const root = ContainerMap.get(dom)\n\n if (!root) return false\n\n unstable_batchedUpdates(() => {\n root.unmount(() => {\n ContainerMap.delete(dom)\n })\n }, null)\n\n return true\n}\n\nfunction findDOMNode (comp?: TaroElement | ReactNode) {\n if (comp == null) {\n return null\n }\n\n const nodeType = (comp as TaroElement).nodeType\n if (nodeType === 1 || nodeType === 3) {\n return comp\n }\n\n return TaroReconciler.findHostInstance(comp as Record<string, any>)\n}\n\nconst portalType = isFunction(Symbol) && Symbol.for\n ? Symbol.for('react.portal')\n : 0xeaca\n\nfunction createPortal (\n children: ReactNode,\n containerInfo: TaroElement,\n key?: string\n) {\n return {\n $$typeof: portalType,\n key: key == null ? null : String(key),\n children,\n containerInfo,\n implementation: null\n }\n}\n\nexport {\n createPortal,\n createRoot,\n findDOMNode,\n render,\n unmountComponentAtNode,\n unstable_batchedUpdates\n}\n\nexport default {\n render,\n createRoot,\n unstable_batchedUpdates,\n unmountComponentAtNode,\n findDOMNode,\n createPortal\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/react",
3
- "version": "3.6.0-beta.1",
3
+ "version": "3.6.0-beta.2",
4
4
  "description": "like react-dom, but for mini apps.",
5
5
  "author": "yuche <i@yuche.me>",
6
6
  "homepage": "https://github.com/nervjs/taro/tree/master/packages/taro-react#readme",
@@ -19,9 +19,8 @@
19
19
  },
20
20
  "dependencies": {
21
21
  "react-reconciler": "0.27.0",
22
- "scheduler": "^0.20.1",
23
- "@tarojs/runtime": "3.6.0-beta.1",
24
- "@tarojs/shared": "3.6.0-beta.1"
22
+ "@tarojs/runtime": "3.6.0-beta.2",
23
+ "@tarojs/shared": "3.6.0-beta.2"
25
24
  },
26
25
  "devDependencies": {
27
26
  "react": "^18.2.0"