提交 77b1ef82 编写于 作者: fxy060608's avatar fxy060608

wip(app): nvue

上级 62dc92ff
......@@ -57,7 +57,8 @@ function buildNVuePage(filename: string, options: BuildOptions) {
`import App from './${filename}'
import { AppStyles } from './app.css.js'
const app = Vue.createApp(App)
app.provide('__appStyles', Vue.useCssStyles(AppStyles))
App.mpType = 'page'
app.provide('__globalStyles', Vue.useCssStyles([...AppStyles, ...App.styles]))
app.mount('#root')`,
path.join(nvueOutDir(), 'main.js'),
options
......
......@@ -10993,22 +10993,29 @@ export function nvueFactory(exports, document) {
appContext
}
} = _ref23;
var component = type;
if (!type.__styles) {
var styles = [];
if (!component.__styles) {
if (component.mpType === 'page' && appContext) {
// 如果是页面组件,则直接使用全局样式
component.__styles = appContext.provides.__globalStyles;
} else {
var styles = [];
if (appContext) {
styles.push(appContext.provides.__appStyles);
}
if (appContext) {
// 全局样式,包括 app.css 以及 page.css
styles.push(appContext.provides.__globalStyles);
}
if (isArray(type.styles)) {
type.styles.forEach(style => styles.push(style));
}
if (isArray(component.styles)) {
component.styles.forEach(style => styles.push(style));
}
type.__styles = useCssStyles(styles);
component.__styles = useCssStyles(styles);
}
}
return type.__styles;
return component.__styles;
}
function isUndef(val) {
......
......@@ -9168,22 +9168,29 @@ export function nvueFactory(exports, document) {
appContext
}
} = _ref23;
var component = type;
if (!type.__styles) {
var styles = [];
if (!component.__styles) {
if (component.mpType === 'page' && appContext) {
// 如果是页面组件,则直接使用全局样式
component.__styles = appContext.provides.__globalStyles;
} else {
var styles = [];
if (appContext) {
styles.push(appContext.provides.__appStyles);
}
if (appContext) {
// 全局样式,包括 app.css 以及 page.css
styles.push(appContext.provides.__globalStyles);
}
if (isArray(type.styles)) {
type.styles.forEach(style => styles.push(style));
}
if (isArray(component.styles)) {
component.styles.forEach(style => styles.push(style));
}
type.__styles = useCssStyles(styles);
component.__styles = useCssStyles(styles);
}
}
return type.__styles;
return component.__styles;
}
function isUndef(val) {
......
......@@ -8891,17 +8891,25 @@ function useCssStyles(styles) {
return normalized;
}
function parseStylesheet({ type, vnode: { appContext } }) {
if (!type.__styles) {
const styles = [];
if (appContext) {
styles.push(appContext.provides.__appStyles);
const component = type;
if (!component.__styles) {
if (component.mpType === 'page' && appContext) {
// 如果是页面组件,则直接使用全局样式
component.__styles = appContext.provides.__globalStyles;
}
if (isArray(type.styles)) {
type.styles.forEach(style => styles.push(style));
else {
const styles = [];
if (appContext) {
// 全局样式,包括 app.css 以及 page.css
styles.push(appContext.provides.__globalStyles);
}
if (isArray(component.styles)) {
component.styles.forEach(style => styles.push(style));
}
component.__styles = useCssStyles(styles);
}
type.__styles = useCssStyles(styles);
}
return type.__styles;
return component.__styles;
}
function isUndef(val) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册