From d811f92dda457df107d43d2e3f320078687c7e15 Mon Sep 17 00:00:00 2001 From: Pig Fang Date: Wed, 12 Feb 2020 10:11:06 +0800 Subject: [PATCH] add missing "mounted" event --- resources/assets/src/index.tsx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/resources/assets/src/index.tsx b/resources/assets/src/index.tsx index 8472cee9..4a3d822a 100644 --- a/resources/assets/src/index.tsx +++ b/resources/assets/src/index.tsx @@ -3,6 +3,7 @@ import * as React from 'react' import ReactDOM from 'react-dom' import './scripts/app' import routes from './scripts/route' +import * as emitter from './scripts/event' Vue.config.productionTip = false @@ -19,21 +20,25 @@ function loadModules() { } if (route.react) { const Component = React.lazy( - route.react as (() => Promise<{ default: React.ComponentType }>) + route.react as () => Promise<{ default: React.ComponentType }>, ) const Root = () => ( ) - if (typeof route.el === 'string') { - ReactDOM.render(, document.querySelector(route.el)) - } else { - ReactDOM.render(, route.el) - } + const c = + typeof route.el === 'string' + ? document.querySelector(route.el) + : route.el + ReactDOM.render(, c, () => { + emitter.emit('mounted', { el: route.el }) + }) } if (route.component) { - Vue.prototype.$route = new RegExp(`^${route.path}$`, 'i').exec(blessing.route) + Vue.prototype.$route = new RegExp(`^${route.path}$`, 'i').exec( + blessing.route, + ) // eslint-disable-next-line no-new new Vue({ el: route.el,