@shijiu/jsview 2.3.151-test.0 → 3.0.0-next-vue.0
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/dom/bin/jsview-dom-browser-engine-core.min.js +1 -1
- package/dom/bin/jsview-dom-browser-engine-modules.min.js +1 -1
- package/dom/bin/{jsview-dom-browser-forge.1493.9a36.wasm → jsview-dom-browser-forge.1760.0e35.wasm} +0 -0
- package/dom/bin/jsview-dom-browser-forge.min.js +1 -1
- package/dom/bin/jsview-dom-browser-forge.worker.min.js +1 -1
- package/dom/bin/jsview-dom-browser.min.js +1 -1
- package/dom/bin/jsview-dom-native.min.js +1 -1
- package/dom/bin/jsview-engine-js-native.min.js +1 -1
- package/dom/target_core_revision.mjs +2 -2
- package/loader/jsv-core-api/jsview-core-api-glue.js +10 -1
- package/loader/jsv-core-api/wasm/core-api.js +87 -2
- package/loader/jsv-core-api/wasm/wasm-extension.js +5 -0
- package/loader/jsview-loader.js +7 -0
- package/loader/jsview-main.mjs +2 -1
- package/loader/jsview.config.default.js +4 -0
- package/package.json +7 -5
- package/patches/@vitejs+plugin-vue+4.0.0.patch +51 -0
- package/patches/@vitejs+plugin-vue+6.0.6.patch +54 -0
- package/patches/@vue+compiler-dom+3.2.45.patch +22 -0
- package/patches/@vue+compiler-dom+3.6.0-beta.10.patch +22 -0
- package/patches/@vue+compiler-sfc+3.2.45.patch +1986 -0
- package/patches/@vue+compiler-sfc+3.6.0-beta.10.patch +69 -0
- package/patches/@vue+runtime-core+3.2.45.patch +353 -0
- package/patches/@vue+runtime-core+3.6.0-beta.10.patch +196 -0
- package/patches/@vue+runtime-dom+3.2.45.patch +81 -0
- package/patches/@vue+runtime-dom+3.6.0-beta.10.patch +47 -0
- package/patches/postcss-js+5.1.0.patch +20 -0
- package/patches/vite+4.0.0.patch +117 -0
- package/patches/vite+8.0.9.patch +77 -0
- package/patches/vue-router+4.1.6.patch +17 -0
- package/patches/vue-router+5.0.6.patch +0 -0
- package/{patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js → thirdparty/@vue/compiler-sfc/jsview-css-to-js.cjs} +15 -10
- package/{patches/node_modules/@vue/compiler-sfc/dist/jsview-style-checker.js → thirdparty/@vue/compiler-sfc/jsview-style-checker.cjs} +6 -1
- package/{patches/node_modules/@vue/compiler-sfc/dist/jsview-style-formator.cjs.js → thirdparty/@vue/compiler-sfc/jsview-style-formator.cjs} +3 -0
- package/thirdparty/@vue/runtime-core/jsview-render-break.mjs +189 -0
- package/thirdparty/vite/jsview-vite-extension.mjs +336 -0
- package/tools/jsview-build-zip.mjs +7 -2
- package/tools/jsview-common.mjs +17 -4
- package/tools/{jsview-logger.js → jsview-logger.cjs} +1 -1
- package/tools/jsview-post-build.mjs +55 -0
- package/tools/jsview-post-install.mjs +105 -103
- package/tools/jsview-run-tool.mjs +3 -6
- package/tools/jsview-vue-devtools.mjs +1 -1
- package/loader/jsview-react-main.js +0 -37
- package/loader/jsview-react-script-loader.js +0 -134
- package/patches/node_modules/@vitejs/plugin-react/dist/index.cjs +0 -520
- package/patches/node_modules/@vitejs/plugin-react/package.json +0 -55
- package/patches/node_modules/@vitejs/plugin-vue/dist/index.mjs +0 -2756
- package/patches/node_modules/@vitejs/plugin-vue/package.json +0 -51
- package/patches/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js +0 -3152
- package/patches/node_modules/@vue/compiler-dom/package.json +0 -43
- package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +0 -17730
- package/patches/node_modules/@vue/compiler-sfc/package.json +0 -59
- package/patches/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +0 -8154
- package/patches/node_modules/@vue/runtime-core/package.json +0 -38
- package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts +0 -1531
- package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +0 -1740
- package/patches/node_modules/@vue/runtime-dom/package.json +0 -42
- package/patches/node_modules/postcss-js/objectifier.js +0 -94
- package/patches/node_modules/postcss-js/package.json +0 -42
- package/patches/node_modules/react-dev-utils/WebpackDevServerUtils.js +0 -450
- package/patches/node_modules/react-dev-utils/package.json +0 -88
- package/patches/node_modules/react-dom/cjs/react-dom.development.js +0 -29868
- package/patches/node_modules/react-dom/cjs/react-dom.production.min.js +0 -323
- package/patches/node_modules/react-dom/package.json +0 -62
- package/patches/node_modules/react-scripts/config/paths.js +0 -179
- package/patches/node_modules/react-scripts/config/webpack.config.js +0 -858
- package/patches/node_modules/react-scripts/package.json +0 -108
- package/patches/node_modules/vite/dist/node/chunks/dep-ed9cb113.js +0 -63182
- package/patches/node_modules/vite/dist/node/constants.js +0 -125
- package/patches/node_modules/vite/dist/node/jsview-vite-extension.js +0 -245
- package/patches/node_modules/vite/package.json +0 -153
- package/patches/node_modules/vue-router/dist/vue-router.mjs +0 -3613
- package/patches/node_modules/vue-router/package.json +0 -114
- package/patches/node_modules/webpack-dev-server/client/utils/reloadApp.js +0 -76
- package/patches/node_modules/webpack-dev-server/client/utils/sendMessage.js +0 -21
- package/patches/node_modules/webpack-dev-server/package.json +0 -141
- /package/patches/{node_modules/@originjs/vite-plugin-federation/1.3.4/@originjs+vite-plugin-federation+1.3.4.patch → @originjs+vite-plugin-federation+1.3.4.patch} +0 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
diff --git a/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js
|
|
2
|
+
index 7e80f1c..63dae5b 100644
|
|
3
|
+
--- a/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js
|
|
4
|
+
+++ b/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js
|
|
5
|
+
@@ -50,6 +50,11 @@ magic_string = __toESM(magic_string);
|
|
6
|
+
let _babel_parser = require("@babel/parser");
|
|
7
|
+
let process$1 = require("process");
|
|
8
|
+
process$1 = __toESM(process$1);
|
|
9
|
+
+
|
|
10
|
+
+// JsView Added >>>
|
|
11
|
+
+let jsvCssToJs = require("@shijiu/jsview/thirdparty/@vue/compiler-sfc/jsview-css-to-js.cjs");
|
|
12
|
+
+// JsView Added <<<
|
|
13
|
+
+
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region packages/compiler-sfc/src/style/cssVars.ts
|
|
16
|
+
var import_hash_sum = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
17
|
+
@@ -1483,6 +1488,12 @@ function parse(source, options = {}) {
|
|
18
|
+
descriptor.cssVars = parseCssVars(descriptor);
|
|
19
|
+
const slottedRE = /(?:::v-|:)slotted\(/;
|
|
20
|
+
descriptor.slotted = descriptor.styles.some((s) => s.scoped && slottedRE.test(s.content));
|
|
21
|
+
+
|
|
22
|
+
+// JsView Added >>>
|
|
23
|
+
+// 如果不存在<script>标签,则手动添加一个用于处理Css转为Js。
|
|
24
|
+
+ jsvCssToJs.ensureSfcDescriptor(descriptor);
|
|
25
|
+
+// JsView Added <<<
|
|
26
|
+
+
|
|
27
|
+
const result = {
|
|
28
|
+
descriptor,
|
|
29
|
+
errors
|
|
30
|
+
@@ -3305,7 +3316,12 @@ function doCompileTemplate({ filename, id, scoped, slotted, inMap, source, ast:
|
|
31
|
+
let { code, ast, preamble, map, helpers } = compiler.compile(inAST || source, {
|
|
32
|
+
mode: "module",
|
|
33
|
+
prefixIdentifiers: true,
|
|
34
|
+
- hoistStatic: true,
|
|
35
|
+
+
|
|
36
|
+
+// JsView Modified >>>
|
|
37
|
+
+// 解决xxx问题。
|
|
38
|
+
+ hoistStatic: false,
|
|
39
|
+
+// JsView Modified <<<
|
|
40
|
+
+
|
|
41
|
+
cacheHandlers: true,
|
|
42
|
+
ssrCssVars: ssr && ssrCssVars && ssrCssVars.length ? genCssVarsFromList(ssrCssVars, shortId, isProd, true) : "",
|
|
43
|
+
scopeId: scoped ? longId : void 0,
|
|
44
|
+
@@ -11842,6 +11858,12 @@ function processNormalScript(ctx, scopeId) {
|
|
45
|
+
if (cssVars.length && !((_ctx$options$template = ctx.options.templateOptions) === null || _ctx$options$template === void 0 ? void 0 : _ctx$options$template.ssr)) content += genNormalScriptCssVarsCode(cssVars, bindings, scopeId, !!isProd, defaultVar);
|
|
46
|
+
if (!genDefaultAs) content += `\nexport default ${defaultVar}`;
|
|
47
|
+
}
|
|
48
|
+
+
|
|
49
|
+
+// JsView Added >>>
|
|
50
|
+
+// 在标准写法下,将Css转换为Js, 并注入到Js文件。
|
|
51
|
+
+ content += jsvCssToJs.compileCssToJs(ctx.descriptor, ctx.options);
|
|
52
|
+
+// JsView Added <<<
|
|
53
|
+
+
|
|
54
|
+
return {
|
|
55
|
+
...script,
|
|
56
|
+
content,
|
|
57
|
+
@@ -15211,6 +15233,12 @@ function compileScript(sfc, options) {
|
|
58
|
+
const importSrc = runtimeModuleName ? JSON.stringify(runtimeModuleName) : `'vue'`;
|
|
59
|
+
ctx.s.prepend(`import { ${[...ctx.helperImports].map((h) => `${h} as _${h}`).join(", ")} } from ${importSrc}\n`);
|
|
60
|
+
}
|
|
61
|
+
+
|
|
62
|
+
+// JsView Added >>>
|
|
63
|
+
+// 在setup写法下,将Css转换为Js, 并注入到Js文件。
|
|
64
|
+
+ ctx.s.append(jsvCssToJs.compileCssToJs(sfc, options));
|
|
65
|
+
+// JsView Added <<<
|
|
66
|
+
+
|
|
67
|
+
const content = ctx.s.toString();
|
|
68
|
+
let map = options.sourceMap !== false ? ctx.s.generateMap({
|
|
69
|
+
source: filename,
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
diff --git a/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js b/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
|
|
2
|
+
index f4f2cf8..2548e68 100644
|
|
3
|
+
--- a/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
|
|
4
|
+
+++ b/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
|
|
5
|
+
@@ -243,6 +243,15 @@ function nextTick(fn) {
|
|
6
|
+
const p = currentFlushPromise || resolvedPromise;
|
|
7
|
+
return fn ? p.then(this ? fn.bind(this) : fn) : p;
|
|
8
|
+
}
|
|
9
|
+
+
|
|
10
|
+
+// JsView Added >>>
|
|
11
|
+
+const jsvDelayQueue = [];
|
|
12
|
+
+let jsvPendingForFirstDelayRender = false;
|
|
13
|
+
+let jsvDelayQueueTimer = 0;
|
|
14
|
+
+let jsvDelayQueueTaskToken = 1;
|
|
15
|
+
+const jsvDelayQueueRecord = [];
|
|
16
|
+
+// JsView Added <<<
|
|
17
|
+
+
|
|
18
|
+
// #2768
|
|
19
|
+
// Use binary-search to find a suitable position in the queue,
|
|
20
|
+
// so that the queue maintains the increasing order of job's id,
|
|
21
|
+
@@ -357,6 +366,10 @@ const comparator = (a, b) => {
|
|
22
|
+
}
|
|
23
|
+
return diff;
|
|
24
|
+
};
|
|
25
|
+
+// JsView Modified >>>
|
|
26
|
+
+let JsvRenderCount = 0;
|
|
27
|
+
+let hasBreakEnableApi = !!(window.JsView?.ifRenderBreakEnable);
|
|
28
|
+
+// JsView Modified <<<
|
|
29
|
+
function flushJobs(seen) {
|
|
30
|
+
isFlushPending = false;
|
|
31
|
+
isFlushing = true;
|
|
32
|
+
@@ -370,6 +383,22 @@ function flushJobs(seen) {
|
|
33
|
+
// priority number)
|
|
34
|
+
// 2. If a component is unmounted during a parent component's update,
|
|
35
|
+
// its update can be skipped.
|
|
36
|
+
+
|
|
37
|
+
+// JsView Modified >>>
|
|
38
|
+
+ if (jsvDelayQueue.length && !jsvPendingForFirstDelayRender) {
|
|
39
|
+
+ // 将延迟后的任务放入执行队列前,如果任务本身已经失效了,此instance.update就会被设置成inactive
|
|
40
|
+
+ // console.log("QCodeDrop jsvDelayQueue.length=", jsvDelayQueue.length);
|
|
41
|
+
+ queue.unshift(...jsvDelayQueue);
|
|
42
|
+
+
|
|
43
|
+
+ // 记录 Recorder 用于调试
|
|
44
|
+
+ // jsvDelayQueueRecord.length = 0;
|
|
45
|
+
+ // jsvDelayQueueRecord.unshift(...jsvDelayQueue);
|
|
46
|
+
+
|
|
47
|
+
+ jsvDelayQueue.length = 0;
|
|
48
|
+
+ jsvDelayQueueTaskToken++;
|
|
49
|
+
+ }
|
|
50
|
+
+// JsView Modified <<<
|
|
51
|
+
+
|
|
52
|
+
queue.sort(comparator);
|
|
53
|
+
// conditional usage of checkRecursiveUpdate must be determined out of
|
|
54
|
+
// try ... catch block since Rollup by default de-optimizes treeshaking
|
|
55
|
+
@@ -403,6 +432,33 @@ function flushJobs(seen) {
|
|
56
|
+
flushJobs(seen);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
+
|
|
60
|
+
+// JsView Modified >>>
|
|
61
|
+
+ //重置允许描画的个数
|
|
62
|
+
+ JsvRenderCount = 0;
|
|
63
|
+
+ // 重置pending drawing状态
|
|
64
|
+
+ jsvPendingForFirstDelayRender = false;
|
|
65
|
+
+
|
|
66
|
+
+ // 测试是否开启新的 pending draw 状态
|
|
67
|
+
+ if (window.JsView?.hasPendingUserInput?.()) {
|
|
68
|
+
+ jsvPendingForFirstDelayRender = true;
|
|
69
|
+
+ }
|
|
70
|
+
+
|
|
71
|
+
+ // JsView 提交延迟执行任务
|
|
72
|
+
+ if (jsvDelayQueue.length > 0) {
|
|
73
|
+
+ if (jsvDelayQueueTimer > 0) {
|
|
74
|
+
+ clearTimeout(jsvDelayQueueTimer);
|
|
75
|
+
+ jsvDelayQueueTimer = 0;
|
|
76
|
+
+ }
|
|
77
|
+
+
|
|
78
|
+
+ jsvDelayQueueTimer = setTimeout(() => {
|
|
79
|
+
+ jsvDelayQueueTimer = 0;
|
|
80
|
+
+ if (jsvDelayQueue.length > 0) {
|
|
81
|
+
+ queueFlush();
|
|
82
|
+
+ }
|
|
83
|
+
+ }, 0);
|
|
84
|
+
+ }
|
|
85
|
+
+// JsView Modified <<<
|
|
86
|
+
}
|
|
87
|
+
function checkRecursiveUpdates(seen, fn) {
|
|
88
|
+
if (!seen.has(fn)) {
|
|
89
|
+
@@ -1088,7 +1144,14 @@ const isElementRoot = (vnode) => {
|
|
90
|
+
};
|
|
91
|
+
function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
|
|
92
|
+
const { props: prevProps, children: prevChildren, component } = prevVNode;
|
|
93
|
+
- const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
|
|
94
|
+
+// JsView Modified >>>
|
|
95
|
+
+ // const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
|
|
96
|
+
+ const { props: nextProps, children: nextChildren, patchFlag, key } = nextVNode;
|
|
97
|
+
+ if (key == "__QcodeJsviewFreezeComponent") {
|
|
98
|
+
+ return;
|
|
99
|
+
+ }
|
|
100
|
+
+// JsView Modified <<<
|
|
101
|
+
+
|
|
102
|
+
const emits = component.emitsOptions;
|
|
103
|
+
// Parent component's render function was hot-updated. Since this may have
|
|
104
|
+
// caused the child component's slots content to have changed, we need to
|
|
105
|
+
@@ -2879,7 +2942,12 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
|
|
106
|
+
// fallback to implicit self-reference
|
|
107
|
+
return Component;
|
|
108
|
+
}
|
|
109
|
+
- if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {
|
|
110
|
+
+// JsView Modified >>>
|
|
111
|
+
+// if ((process.env.NODE_ENV !== 'production') && warnMissing && !res) {
|
|
112
|
+
+ // 避免掉jsv自定义 element的报错问题
|
|
113
|
+
+ if ((process.env.NODE_ENV !== 'production') && warnMissing && !res
|
|
114
|
+
+ && !name.startsWith("jsve-") && !name.startsWith("jsv-") && !name.startsWith("fdiv")) {
|
|
115
|
+
+// JsView Modified <<<
|
|
116
|
+
const extra = type === COMPONENTS
|
|
117
|
+
? `\nIf this is a native custom element, make sure to exclude it from ` +
|
|
118
|
+
`component resolution via compilerOptions.isCustomElement.`
|
|
119
|
+
@@ -5061,6 +5129,27 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
120
|
+
// Note: functions inside this closure should use `const xxx = () => {}`
|
|
121
|
+
// style in order to prevent being inlined by minifiers.
|
|
122
|
+
const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = (process.env.NODE_ENV !== 'production') && isHmrUpdating ? false : !!n2.dynamicChildren) => {
|
|
123
|
+
+// JsView Added >>>
|
|
124
|
+
+ if (n1 && n1.jsvRenderBreaker?.breaked) {
|
|
125
|
+
+ // 前一次的patch被打断
|
|
126
|
+
+
|
|
127
|
+
+ // anchor和container要从n1中还原出来
|
|
128
|
+
+ container = n1.jsvRenderBreaker.patchPack.container;
|
|
129
|
+
+ anchor = n1.jsvRenderBreaker.patchPack.anchor;
|
|
130
|
+
+
|
|
131
|
+
+ // 释放renderBreak时,创建出来的占位element
|
|
132
|
+
+ if (n1.el) {
|
|
133
|
+
+ n1.el.parentNode.removeChild(n1.el);
|
|
134
|
+
+ n1.el = null;
|
|
135
|
+
+ }
|
|
136
|
+
+
|
|
137
|
+
+ n1 = null;
|
|
138
|
+
+ // if (n2 == null) {
|
|
139
|
+
+ // console.log("QCodeDrop become nothing to draw");
|
|
140
|
+
+ // }
|
|
141
|
+
+ }
|
|
142
|
+
+// JsView Added <<<
|
|
143
|
+
+
|
|
144
|
+
if (n1 === n2) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
@@ -5074,6 +5163,54 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
148
|
+
optimized = false;
|
|
149
|
+
n2.dynamicChildren = null;
|
|
150
|
+
}
|
|
151
|
+
+
|
|
152
|
+
+// JsView Added >>>
|
|
153
|
+
+ // 有按键打断, 取消patch
|
|
154
|
+
+ if (n1 == null && n2) {
|
|
155
|
+
+ if (n2.key == "__QcodeJsviewMetroWidgetSlot"
|
|
156
|
+
+ && (!hasBreakEnableApi || window.JsView.ifRenderBreakEnable())
|
|
157
|
+
+ && (jsvPendingForFirstDelayRender
|
|
158
|
+
+ || window.JsvCode.Dom.IsLazyTaskQueueOverLoad() // 用于解决一次性dom元素过多导致一帧卡太久的问题
|
|
159
|
+
+ || window.JsView?.hasPendingUserInput?.())
|
|
160
|
+
+ && JsvRenderCount >= (window.JsView?.getInstantRenderNum?.() ?? 0)) {
|
|
161
|
+
+ // 创建Comment节点, 以解决el释放可能出错问题
|
|
162
|
+
+ // 同时存储el以便给父节点进行属性链接
|
|
163
|
+
+ hostInsert((n2.el = hostCreateComment('')), container, anchor)
|
|
164
|
+
+ n2.anchor = anchor;
|
|
165
|
+
+
|
|
166
|
+
+ n2.jsvRenderBreaker = {
|
|
167
|
+
+ breaked: true,
|
|
168
|
+
+ patchPack: {
|
|
169
|
+
+ container,
|
|
170
|
+
+ anchor, // 可能获取从fragment提交过来的anchor
|
|
171
|
+
+ }
|
|
172
|
+
+ };
|
|
173
|
+
+
|
|
174
|
+
+ // TODO: 有时候children[0]不存在
|
|
175
|
+
+ // TODO: 为什么需要对children[0]进行设置?是否是考虑patch时第一子节点不递归的问题, 需要vue版本升级时重新评估
|
|
176
|
+
+ if (n2.children?.[0]?.key === "__QcodeJsviewMetroWidgetSlot") {
|
|
177
|
+
+ n2.children[0].anchor = anchor;
|
|
178
|
+
+ n2.children[0].jsvRenderBreaker = {
|
|
179
|
+
+ breaked: true,
|
|
180
|
+
+ patchPack: {
|
|
181
|
+
+ container,
|
|
182
|
+
+ anchor, // 可能获取从fragment提交过来的anchor
|
|
183
|
+
+ }
|
|
184
|
+
+ };
|
|
185
|
+
+ }
|
|
186
|
+
+
|
|
187
|
+
+ if (!parentComponent.update.delayToken || parentComponent.update.delayToken != jsvDelayQueueTaskToken) {
|
|
188
|
+
+ parentComponent.update.delayToken = jsvDelayQueueTaskToken;
|
|
189
|
+
+ jsvDelayQueue.push(parentComponent.update);
|
|
190
|
+
+ } else {
|
|
191
|
+
+ // console.log("QCodeDrop repeat add parentComponent.update for id=" + parentComponent.update.id);
|
|
192
|
+
+ }
|
|
193
|
+
+ return;
|
|
194
|
+
+ }
|
|
195
|
+
+ JsvRenderCount++;
|
|
196
|
+
+ }
|
|
197
|
+
+// JsView Added <<<
|
|
198
|
+
+
|
|
199
|
+
const { type, ref, shapeFlag } = n2;
|
|
200
|
+
switch (type) {
|
|
201
|
+
case Text:
|
|
202
|
+
@@ -5114,6 +5251,10 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
203
|
+
if (ref != null && parentComponent) {
|
|
204
|
+
setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
|
|
205
|
+
}
|
|
206
|
+
+
|
|
207
|
+
+// JsView Added >>>
|
|
208
|
+
+ n2.jsvPatchedFlag = true; // 记录是否执行完成patch操作,用于避免unmount处理失效
|
|
209
|
+
+// JsView Added <<<
|
|
210
|
+
};
|
|
211
|
+
const processText = (n1, n2, container, anchor) => {
|
|
212
|
+
if (n1 == null) {
|
|
213
|
+
@@ -5579,6 +5720,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
214
|
+
const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
|
|
215
|
+
const componentUpdateFn = () => {
|
|
216
|
+
if (!instance.isMounted) {
|
|
217
|
+
+ // JsView Added >>>
|
|
218
|
+
+ startMeasure(instance, "react-mount");
|
|
219
|
+
+ // JsView Added <<<
|
|
220
|
+
let vnodeHook;
|
|
221
|
+
const { el, props } = initialVNode;
|
|
222
|
+
const { bm, m, parent } = instance;
|
|
223
|
+
@@ -5666,9 +5810,16 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
224
|
+
}
|
|
225
|
+
// #2458: deference mount-only object parameters to prevent memleaks
|
|
226
|
+
initialVNode = container = anchor = null;
|
|
227
|
+
+
|
|
228
|
+
+ // JsView Added >>>
|
|
229
|
+
+ endMeasure(instance, "react-mount");
|
|
230
|
+
+ // JsView Added <<<
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
// updateComponent
|
|
234
|
+
+ // JsView Added >>>
|
|
235
|
+
+ startMeasure(instance, "reactive");
|
|
236
|
+
+ // JsView Added <<<
|
|
237
|
+
// This is triggered by mutation of component's own state (next: null)
|
|
238
|
+
// OR parent calling processComponent (next: VNode)
|
|
239
|
+
let { next, bu, u, parent, vnode } = instance;
|
|
240
|
+
@@ -5708,11 +5859,45 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
241
|
+
if ((process.env.NODE_ENV !== 'production')) {
|
|
242
|
+
startMeasure(instance, `patch`);
|
|
243
|
+
}
|
|
244
|
+
+
|
|
245
|
+
+// JsView Added >>>
|
|
246
|
+
+ let el_parent_node;
|
|
247
|
+
+ let next_host_node;
|
|
248
|
+
+ if (prevTree.jsvRenderBreaker?.breaked) {
|
|
249
|
+
+ // el_parent_node = hostParentNode(prevTree.el);
|
|
250
|
+
+ // next_host_node = getNextHostNode(prevTree);
|
|
251
|
+
+ el_parent_node = prevTree.jsvRenderBreaker.patchPack.container;
|
|
252
|
+
+ next_host_node = prevTree.jsvRenderBreaker.patchPack.anchor;
|
|
253
|
+
+
|
|
254
|
+
+ if (next_host_node && next_host_node.parent != el_parent_node) {
|
|
255
|
+
+ // anchor失效了
|
|
256
|
+
+ // console.warn("QCodeDrop lost anchor for anchor.parent=", next_host_node.parent);
|
|
257
|
+
+ next_host_node = null;
|
|
258
|
+
+ }
|
|
259
|
+
+ } else if (prevTree.jsvPatchedFlag) {
|
|
260
|
+
+ // if (!prevTree.el) {
|
|
261
|
+
+ // console.log("QCodeDrop element lost...");
|
|
262
|
+
+ // }
|
|
263
|
+
+ el_parent_node = hostParentNode(prevTree.el);
|
|
264
|
+
+ next_host_node = getNextHostNode(prevTree);
|
|
265
|
+
+ } else {
|
|
266
|
+
+ console.warn("QCodeDrop update with no patched item, use default set");
|
|
267
|
+
+ el_parent_node = container;
|
|
268
|
+
+ next_host_node = anchor;
|
|
269
|
+
+ return;
|
|
270
|
+
+ }
|
|
271
|
+
+// JsView Added <<<
|
|
272
|
+
+
|
|
273
|
+
patch(prevTree, nextTree,
|
|
274
|
+
- // parent may have changed if it's in a teleport
|
|
275
|
+
- hostParentNode(prevTree.el),
|
|
276
|
+
- // anchor may have changed if it's in a fragment
|
|
277
|
+
- getNextHostNode(prevTree), instance, parentSuspense, isSVG);
|
|
278
|
+
+// JsView Modified >>>
|
|
279
|
+
+// // parent may have changed if it's in a teleport
|
|
280
|
+
+// hostParentNode(prevTree.el),
|
|
281
|
+
+// // anchor may have changed if it's in a fragment
|
|
282
|
+
+// getNextHostNode(prevTree), instance, parentSuspense, isSVG);
|
|
283
|
+
+ el_parent_node,
|
|
284
|
+
+ next_host_node,
|
|
285
|
+
+ instance, parentSuspense, isSVG);
|
|
286
|
+
+// JsView Modified <<<
|
|
287
|
+
if ((process.env.NODE_ENV !== 'production')) {
|
|
288
|
+
endMeasure(instance, `patch`);
|
|
289
|
+
}
|
|
290
|
+
@@ -5737,6 +5922,9 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
291
|
+
if ((process.env.NODE_ENV !== 'production')) {
|
|
292
|
+
popWarningContext();
|
|
293
|
+
}
|
|
294
|
+
+ // JsView Added >>>
|
|
295
|
+
+ endMeasure(instance, "reactive");
|
|
296
|
+
+ // JsView Added <<<
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
// create reactive effect for rendering
|
|
300
|
+
@@ -6086,6 +6274,25 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
301
|
+
parentComponent.ctx.deactivate(vnode);
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
+
|
|
305
|
+
+// JsView Added >>>
|
|
306
|
+
+ if (!vnode.jsvPatchedFlag) {
|
|
307
|
+
+ // unmount动作要进行的是vnode中的子节点进行unmount,但是vnode本身没有去进行创建,所以也不用去销毁
|
|
308
|
+
+ // 但是 mount 状态需要进行记录,避免由于RenderBreaker引起子节点未patch因为无法umount状态
|
|
309
|
+
+
|
|
310
|
+
+ if (vnode.jsvRenderBreaker?.breaked) {
|
|
311
|
+
+ vnode.el.parentNode.removeChild(vnode.el);
|
|
312
|
+
+ vnode.el = null;
|
|
313
|
+
+ vnode.anchor = null;
|
|
314
|
+
+ vnode.jsvRenderBreaker = null;
|
|
315
|
+
+ }
|
|
316
|
+
+ return;
|
|
317
|
+
+ } else {
|
|
318
|
+
+ // unmount时重置jsvPatchedFlag
|
|
319
|
+
+ vnode.jsvPatchedFlag = false;
|
|
320
|
+
+ }
|
|
321
|
+
+// JsView Added <<<
|
|
322
|
+
+
|
|
323
|
+
const shouldInvokeDirs = shapeFlag & 1 /* ShapeFlags.ELEMENT */ && dirs;
|
|
324
|
+
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
325
|
+
let vnodeHook;
|
|
326
|
+
@@ -6748,8 +6955,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
|
|
327
|
+
patchFlag,
|
|
328
|
+
dynamicProps,
|
|
329
|
+
dynamicChildren: null,
|
|
330
|
+
- appContext: null,
|
|
331
|
+
- ctx: currentRenderingInstance
|
|
332
|
+
+// JsView Added >>>
|
|
333
|
+
+ jsvRenderBreaker: null, //打断处理
|
|
334
|
+
+ jsvPatchedFlag: false, // 用于记录节点是否完成mount,未完成的可能由于jsvRenderBreaker打断了导致子节点不mount
|
|
335
|
+
+// JsView Added <<<
|
|
336
|
+
+ appContext: null
|
|
337
|
+
};
|
|
338
|
+
if (needFullChildrenNormalization) {
|
|
339
|
+
normalizeChildren(vnode, children);
|
|
340
|
+
@@ -7444,6 +7654,13 @@ function createSetupContext(instance) {
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
function getExposeProxy(instance) {
|
|
344
|
+
+// JsView Added >>>
|
|
345
|
+
+ // 用于确认执行错误问题
|
|
346
|
+
+ if (!instance) {
|
|
347
|
+
+ console.error("QCodeDrop lost instance");
|
|
348
|
+
+ }
|
|
349
|
+
+// JsView Added <<<
|
|
350
|
+
+
|
|
351
|
+
if (instance.exposed) {
|
|
352
|
+
return (instance.exposeProxy ||
|
|
353
|
+
(instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
diff --git a/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js b/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
|
|
2
|
+
index 42090ab..fe02eba 100644
|
|
3
|
+
--- a/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
|
|
4
|
+
+++ b/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js
|
|
5
|
+
@@ -5,6 +5,11 @@
|
|
6
|
+
**/
|
|
7
|
+
import { EffectScope, EffectScope as EffectScope$1, ReactiveEffect, ReactiveEffect as ReactiveEffect$1, TrackOpTypes, TriggerOpTypes, WatcherEffect, computed as computed$1, customRef, customRef as customRef$1, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isProxy as isProxy$1, isReactive, isReactive as isReactive$1, isReadonly, isReadonly as isReadonly$1, isRef, isRef as isRef$1, isShallow, isShallow as isShallow$1, markRaw, markRaw as markRaw$1, onScopeDispose, onWatcherCleanup, proxyRefs, proxyRefs as proxyRefs$1, reactive, reactive as reactive$1, readonly, readonly as readonly$1, ref, ref as ref$1, setActiveSub, setCurrentScope, shallowReactive, shallowReactive as shallowReactive$1, shallowReadArray, shallowReadonly, shallowReadonly as shallowReadonly$1, shallowRef, shallowRef as shallowRef$1, stop, toRaw, toRaw as toRaw$1, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref } from "@vue/reactivity";
|
|
8
|
+
import { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, camelize, camelize as camelize$1, capitalize, capitalize as capitalize$1, def, extend, getEscapedCssVarName, getGlobalThis, getModifierPropName, getSequence, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isBuiltInTag, isFunction, isGloballyAllowed, isKnownHtmlAttr, isKnownSvgAttr, isModelListener, isObject, isOn, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isString, isSymbol, looseEqual, looseToNumber, makeMap, normalizeClass, normalizeClass as normalizeClass$1, normalizeCssVarValue, normalizeProps, normalizeStyle, normalizeStyle as normalizeStyle$1, remove, stringifyStyle, toDisplayString, toHandlerKey, toHandlerKey as toHandlerKey$1, toNumber, toRawType } from "@vue/shared";
|
|
9
|
+
+
|
|
10
|
+
+// JsView Added >>>
|
|
11
|
+
+import { jsvSliceDelayQueue, jsvPostDelayQueue, jsvRemoveNodeIfRenderBreaked, jsvCancelPatchIfRenderBreaked, jsvUpdatePatchNode, jsvResetPatchNode } from "@shijiu/jsview/thirdparty/@vue/runtime-core/jsview-render-break.mjs";
|
|
12
|
+
+// JsView Added <<<
|
|
13
|
+
+
|
|
14
|
+
//#region packages/runtime-core/src/warning.ts
|
|
15
|
+
const stack = [];
|
|
16
|
+
/**
|
|
17
|
+
@@ -366,6 +371,13 @@ function flushOnAppMount(instance) {
|
|
18
|
+
}
|
|
19
|
+
function flushJobs(seen) {
|
|
20
|
+
if (!!(process.env.NODE_ENV !== "production")) seen || (seen = /* @__PURE__ */ new Map());
|
|
21
|
+
+
|
|
22
|
+
+// JsView Added >>>
|
|
23
|
+
+// 将延迟后的任务放入执行队列前,如果任务本身已经失效了,此instance.update就会被设置成inactive
|
|
24
|
+
+ const jsvDelayQueueSize = jsvSliceDelayQueue(jobs);
|
|
25
|
+
+ jobsLength += jsvDelayQueueSize;
|
|
26
|
+
+// JsView Added <<<
|
|
27
|
+
+
|
|
28
|
+
try {
|
|
29
|
+
while (flushIndex < jobsLength) {
|
|
30
|
+
const job = jobs[flushIndex];
|
|
31
|
+
@@ -393,6 +405,10 @@ function flushJobs(seen) {
|
|
32
|
+
currentFlushPromise = null;
|
|
33
|
+
if (jobsLength || postJobs.length) flushJobs(seen);
|
|
34
|
+
}
|
|
35
|
+
+
|
|
36
|
+
+// JsView Added >>>
|
|
37
|
+
+ jsvPostDelayQueue(queueFlush);
|
|
38
|
+
+// JsView Added <<<
|
|
39
|
+
}
|
|
40
|
+
function checkRecursiveUpdates(seen, fn) {
|
|
41
|
+
const count = seen.get(fn) || 0;
|
|
42
|
+
@@ -2440,6 +2456,11 @@ function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false
|
|
43
|
+
if (!res && maybeSelfReference) return Component;
|
|
44
|
+
if (!!(process.env.NODE_ENV !== "production") && warnMissing && !res) {
|
|
45
|
+
const extra = type === "components" ? "\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement." : ``;
|
|
46
|
+
+
|
|
47
|
+
+// JsView Modified >>>
|
|
48
|
+
+ // 避免掉jsv自定义 element的报错问题
|
|
49
|
+
+ if (!name.startsWith("jsve-") && !name.startsWith("jsv-") && !name.startsWith("fdiv"))
|
|
50
|
+
+// JsView Modified <<<
|
|
51
|
+
warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);
|
|
52
|
+
}
|
|
53
|
+
return res;
|
|
54
|
+
@@ -3637,7 +3658,12 @@ const isElementRoot = (vnode) => {
|
|
55
|
+
};
|
|
56
|
+
function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
|
|
57
|
+
const { props: prevProps, children: prevChildren, component } = prevVNode;
|
|
58
|
+
- const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
|
|
59
|
+
+// JsView Modified >>>
|
|
60
|
+
+ const { props: nextProps, children: nextChildren, patchFlag, key } = nextVNode;
|
|
61
|
+
+ if (key == "__QcodeJsviewFreezeComponent") {
|
|
62
|
+
+ return;
|
|
63
|
+
+ }
|
|
64
|
+
+// JsView Modified <<<
|
|
65
|
+
const emits = component.emitsOptions;
|
|
66
|
+
if (!!(process.env.NODE_ENV !== "production") && (prevChildren || nextChildren) && isHmrUpdating) return true;
|
|
67
|
+
if (nextVNode.dirs || nextVNode.transition) return true;
|
|
68
|
+
@@ -4173,6 +4199,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
69
|
+
if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);
|
|
70
|
+
const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options;
|
|
71
|
+
const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== "production") && isHmrUpdating ? false : !!n2.dynamicChildren) => {
|
|
72
|
+
+
|
|
73
|
+
+// JsView Added >>>
|
|
74
|
+
+ if (n1 && n1.jsvRenderBreaker?.breaked) {
|
|
75
|
+
+ // 前一次的patch被打断
|
|
76
|
+
+ const { jsvContainer, jsvAnchor } = jsvRemoveNodeIfRenderBreaked(n1);
|
|
77
|
+
+ container = jsvContainer;
|
|
78
|
+
+ anchor = jsvAnchor;
|
|
79
|
+
+ n1 = null;
|
|
80
|
+
+ }
|
|
81
|
+
+// JsView Added <<<
|
|
82
|
+
+
|
|
83
|
+
if (n1 === n2) return;
|
|
84
|
+
if (n1 && !isSameVNodeType(n1, n2)) {
|
|
85
|
+
anchor = getNextHostNode(n1);
|
|
86
|
+
@@ -4183,6 +4220,16 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
87
|
+
optimized = false;
|
|
88
|
+
n2.dynamicChildren = null;
|
|
89
|
+
}
|
|
90
|
+
+
|
|
91
|
+
+// JsView Added >>>
|
|
92
|
+
+ if (n1 == null && n2) {
|
|
93
|
+
+ const breaked = jsvCancelPatchIfRenderBreaked(n2, options, container, anchor, parentComponent);
|
|
94
|
+
+ if (breaked) {
|
|
95
|
+
+ return;
|
|
96
|
+
+ }
|
|
97
|
+
+ }
|
|
98
|
+
+// JsView Added <<<
|
|
99
|
+
+
|
|
100
|
+
const { type, ref, shapeFlag } = n2;
|
|
101
|
+
switch (type) {
|
|
102
|
+
case Text:
|
|
103
|
+
@@ -4209,6 +4256,11 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
104
|
+
}
|
|
105
|
+
if (ref != null && parentComponent) setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
|
|
106
|
+
else if (ref == null && n1 && n1.ref != null) setRef(n1.ref, null, parentSuspense, n1, true);
|
|
107
|
+
+
|
|
108
|
+
+// JsView Added >>>
|
|
109
|
+
+ n2.jsvPatchedFlag = true; // 记录是否执行完成patch操作,用于避免unmount处理失效
|
|
110
|
+
+// JsView Added <<<
|
|
111
|
+
+
|
|
112
|
+
};
|
|
113
|
+
const processText = (n1, n2, container, anchor) => {
|
|
114
|
+
if (n1 == null) hostInsert(n2.el = hostCreateText(n2.children), container, anchor);
|
|
115
|
+
@@ -4536,6 +4588,11 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
116
|
+
fn() {
|
|
117
|
+
const { instance, initialVNode, container, anchor, parentSuspense, namespace, optimized } = this;
|
|
118
|
+
if (!instance.isMounted) {
|
|
119
|
+
+
|
|
120
|
+
+// JsView Added >>>
|
|
121
|
+
+ startMeasure(instance, "react-mount");
|
|
122
|
+
+// JsView Added <<<
|
|
123
|
+
+
|
|
124
|
+
let vnodeHook;
|
|
125
|
+
const { el, props } = initialVNode;
|
|
126
|
+
const { bm, parent, root, type } = instance;
|
|
127
|
+
@@ -4574,7 +4631,17 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
128
|
+
instance.isMounted = true;
|
|
129
|
+
if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentAdded(instance);
|
|
130
|
+
this.initialVNode = this.container = this.anchor = null;
|
|
131
|
+
+
|
|
132
|
+
+// JsView Added >>>
|
|
133
|
+
+ endMeasure(instance, "react-mount");
|
|
134
|
+
+// JsView Added <<<
|
|
135
|
+
+
|
|
136
|
+
} else {
|
|
137
|
+
+
|
|
138
|
+
+// JsView Added >>>
|
|
139
|
+
+ startMeasure(instance, "reactive");
|
|
140
|
+
+// JsView Added <<<
|
|
141
|
+
+
|
|
142
|
+
let { next, bu, u, parent, vnode } = instance;
|
|
143
|
+
{
|
|
144
|
+
const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);
|
|
145
|
+
@@ -4608,7 +4675,14 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
146
|
+
const prevTree = instance.subTree;
|
|
147
|
+
instance.subTree = nextTree;
|
|
148
|
+
if (!!(process.env.NODE_ENV !== "production")) startMeasure(instance, `patch`);
|
|
149
|
+
- patch(prevTree, nextTree, hostParentNode(prevTree.el), getNextHostNode(prevTree), instance, parentSuspense, namespace);
|
|
150
|
+
+
|
|
151
|
+
+// JsView Modified >>>
|
|
152
|
+
+ const jsvNodeInfo = jsvUpdatePatchNode(prevTree, hostParentNode, getNextHostNode);
|
|
153
|
+
+ if (!jsvNodeInfo) {
|
|
154
|
+
+ return;
|
|
155
|
+
+ }
|
|
156
|
+
+ patch(prevTree, nextTree, jsvNodeInfo.parentNode, jsvNodeInfo.nextHostNode, instance, parentSuspense, namespace);
|
|
157
|
+
+// JsView Modified <<<
|
|
158
|
+
if (!!(process.env.NODE_ENV !== "production")) endMeasure(instance, `patch`);
|
|
159
|
+
next.el = nextTree.el;
|
|
160
|
+
if (originNext === null) updateHOCHostEl(instance, nextTree.el);
|
|
161
|
+
@@ -4616,6 +4690,11 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
162
|
+
if (vnodeHook = next.props && next.props.onVnodeUpdated) queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), void 0, parentSuspense);
|
|
163
|
+
if (!!(process.env.NODE_ENV !== "production") || __VUE_PROD_DEVTOOLS__) devtoolsComponentUpdated(instance);
|
|
164
|
+
if (!!(process.env.NODE_ENV !== "production")) popWarningContext();
|
|
165
|
+
+
|
|
166
|
+
+// JsView Added >>>
|
|
167
|
+
+ endMeasure(instance, "reactive");
|
|
168
|
+
+// JsView Added <<<
|
|
169
|
+
+
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
@@ -4820,6 +4899,11 @@ function baseCreateRenderer(options, createHydrationFns) {
|
|
174
|
+
else parentComponent.ctx.deactivate(vnode);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
+
|
|
178
|
+
+// JsView Added >>>
|
|
179
|
+
+ jsvResetPatchNode(vnode);
|
|
180
|
+
+// JsView Added <<<
|
|
181
|
+
+
|
|
182
|
+
const shouldInvokeDirs = shapeFlag & 1 && dirs;
|
|
183
|
+
const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
|
|
184
|
+
let vnodeHook;
|
|
185
|
+
@@ -5505,6 +5589,11 @@ function createBaseVNode(type, props = null, children = null, patchFlag = 0, dyn
|
|
186
|
+
patchFlag,
|
|
187
|
+
dynamicProps,
|
|
188
|
+
dynamicChildren: null,
|
|
189
|
+
+// JsView Added >>>
|
|
190
|
+
+ jsvRenderBreaker: null, //打断处理
|
|
191
|
+
+ jsvPatchedFlag: false, // 用于记录节点是否完成mount,未完成的可能由于jsvRenderBreaker打断了导致子节点不mount
|
|
192
|
+
+// JsView Added <<<
|
|
193
|
+
+
|
|
194
|
+
appContext: null,
|
|
195
|
+
ctx: currentRenderingInstance
|
|
196
|
+
};
|