File tree Expand file tree Collapse file tree 3 files changed +22
-14
lines changed Expand file tree Collapse file tree 3 files changed +22
-14
lines changed Original file line number Diff line number Diff line change @@ -208,12 +208,16 @@ module.exports = function (content) {
208208 output += '/* template */\n'
209209 const template = parts . template
210210 if ( template ) {
211- output +=
212- ( template . src
213- ? getImportForSrc ( 'template' , template )
214- : getImport ( 'template' , template ) ) + '\n'
211+ output += `import {` +
212+ `render as __vue_render__, ` +
213+ `staticRenderFns as __vue_static_render_fns__` +
214+ `} from ${
215+ template . src
216+ ? getSrcRequestString ( 'template' , template )
217+ : getRequestString ( 'template' , template )
218+ } \n`
215219 } else {
216- output += 'var __vue_template__ = null \n'
220+ output += 'var __vue_render__, __vue_static_render_fns__ \n'
217221 }
218222
219223 // <template functional>
@@ -264,7 +268,8 @@ module.exports = function (content) {
264268 `import normalizeComponent from ${ componentNormalizerRequest } \n` +
265269 'var Component = normalizeComponent(\n' +
266270 ` __vue_script__,\n` +
267- ' __vue_template__,\n' +
271+ ` __vue_render__,\n` +
272+ ` __vue_static_render_fns__,\n` +
268273 ' __vue_template_functional__,\n' +
269274 ' __vue_styles__,\n' +
270275 ' __vue_scopeId__,\n' +
Original file line number Diff line number Diff line change 66
77export default function normalizeComponent (
88 scriptExports ,
9- compiledTemplate ,
9+ render ,
10+ staticRenderFns ,
1011 functionalTemplate ,
1112 injectStyles ,
1213 scopeId ,
@@ -27,9 +28,9 @@ export default function normalizeComponent (
2728 : scriptExports
2829
2930 // render functions
30- if ( compiledTemplate ) {
31- options . render = compiledTemplate . render
32- options . staticRenderFns = compiledTemplate . staticRenderFns
31+ if ( render ) {
32+ options . render = render
33+ options . staticRenderFns = staticRenderFns
3334 options . _compiled = true
3435 }
3536
@@ -79,10 +80,10 @@ export default function normalizeComponent (
7980 // go through the normalizer
8081 options . _injectStyles = hook
8182 // register for functioal component in vue file
82- var render = options . render
83+ var originalRender = options . render
8384 options . render = function renderWithStyleInjection ( h , context ) {
8485 hook . call ( context )
85- return render ( h , context )
86+ return originalRender ( h , context )
8687 }
8788 } else {
8889 // inject component registration as beforeCreate hook
Original file line number Diff line number Diff line change @@ -45,7 +45,9 @@ module.exports = function (html) {
4545 compiled . errors . map ( e => ` - ${ e } ` ) . join ( '\n' ) +
4646 '\n'
4747 )
48- code = `export default { render:function () {}, staticRenderFns: [] }`
48+ code =
49+ `export var render = function () {}\n` +
50+ `export var staticRenderFns = []`
4951 } else {
5052 const bubleOptions = options . buble
5153 const stripWith = bubleOptions . transforms . stripWith !== false
@@ -75,7 +77,7 @@ module.exports = function (html) {
7577 if ( ! isProduction && stripWith ) {
7678 code += `render._withStripped = true\n`
7779 }
78- code += `export default { render: render, staticRenderFns: staticRenderFns }`
80+ code += `export { render, staticRenderFns }`
7981 }
8082 // hot-reload
8183 if ( needsHotReload ) {
You can’t perform that action at this time.
0 commit comments