diff --git a/packages/cli/package.json b/packages/cli/package.json index be077207e..32acf330d 100755 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "nanachi-cli", - "version": "1.8.28", + "version": "1.8.29", "description": "cli tool for nanachi", "bin": { "nanachi": "./bin/index.js" diff --git a/packages/cli/packages/babelPlugins/miniappVisitor.js b/packages/cli/packages/babelPlugins/miniappVisitor.js index 75e407dab..4fa034297 100755 --- a/packages/cli/packages/babelPlugins/miniappVisitor.js +++ b/packages/cli/packages/babelPlugins/miniappVisitor.js @@ -207,6 +207,7 @@ const visitor = { modules.className = name; helpers.render.exit(astPath, '无状态组件', name, modules); if (modules.componentType === 'Page') { + modules.classUid = 'c' + utils_1.default.createUUID(astPath); modules.registerStatement = utils_1.default.createRegisterStatement(name, modules.current .replace(/.+pages/, 'pages') .replace(/\.js$/, ''), true); @@ -276,6 +277,12 @@ const visitor = { FUN_DATA: 'FUN_DATA' })); } + if (modules.componentType === 'Page') { + const left = t.memberExpression(t.thisExpression(), t.identifier('classUid')); + const right = t.stringLiteral(modules.classUid); + body.unshift(t.expressionStatement(t.assignmentExpression('=', left, right))); + } + ; body.unshift(template_1.default(utils_1.default.shortcutOfCreateElement())()); } } diff --git a/src/cli/packages/babelPlugins/miniappVisitor.ts b/src/cli/packages/babelPlugins/miniappVisitor.ts index 7cda49d4d..f00dbefbf 100755 --- a/src/cli/packages/babelPlugins/miniappVisitor.ts +++ b/src/cli/packages/babelPlugins/miniappVisitor.ts @@ -294,6 +294,7 @@ const visitor: babel.Visitor = { helpers.render.exit(astPath, '无状态组件', name, modules); if (modules.componentType === 'Page') { + modules.classUid = 'c' + utils.createUUID(astPath); modules.registerStatement = utils.createRegisterStatement( name, modules.current @@ -369,6 +370,15 @@ const visitor: babel.Visitor = { }) as any) } + // 只给页面加classUid + if(modules.componentType === 'Page'){ + const left = t.memberExpression(t.thisExpression(), t.identifier('classUid')); + const right = t.stringLiteral(modules.classUid); + body.unshift( + t.expressionStatement(t.assignmentExpression('=', left, right)) + ); + }; + body.unshift( template(utils.shortcutOfCreateElement())() as any );