首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流星:如何删除多个布局的导入scss

流星:如何删除多个布局的导入scss
EN

Stack Overflow用户
提问于 2016-08-10 06:15:31
回答 1查看 757关注 0票数 0

我正在用Meteor 1.4开发flow-router,我必须使用多个布局模板。

/site/template1 路由 loads

代码语言:javascript
复制
BlazeLayout.render('Template1', {
  main: 'All_Schools'
});

Template.Template1.onCreated(function () {
  import '../styles/template1.scss';
});

/site/template2 路由 loads

代码语言:javascript
复制
BlazeLayout.render('Template2', {
  main: 'All_Schools'
});

Template.Template2.onCreated(function () {
  import '../styles/template2.scss';
});

问题是..。template1template2在UI (so no hard reload)中有模板链接。如果用户更改模板。缓存的scss样式会影响新的样式。如何删除导入的scss文件onDestroy?还是我应该改变我的做法?

EN

回答 1

Stack Overflow用户

发布于 2016-08-10 10:35:11

我会以不同的方式对待这件事。像这样在模板中加载样式没有任何好处,因为Meteor目前不支持代码拆分。相反,我建议您将样式与模板分开,然后将每个模板包装在顶级的类选择器中,用于控制每个特定模板的样式。

例如,可以将所有样式存储在/imports/ui/stylesheets目录中,无论您想要什么都可以:

代码语言:javascript
复制
/imports/ui/stylesheets/template1.scss
/imports/ui/stylesheets/template2.scss
...

然后,您将在/client/main.scss文件中引用所有这些样式表,以便加载它们,如下所示:

代码语言:javascript
复制
@import "{}/imports/ui/stylesheets/template1.scss";
@import "{}/imports/ui/stylesheets/template2.scss";
...

您的单个模板将封装在顶级类选择器中,如下所示:

template1.html

代码语言:javascript
复制
<template name="template1">
  <div class="template1">
    ...
  </div>
</template>

然后,可以将每个模板的样式包装在匹配的顶级选择器中,如下所示:

/imports/ui/stylesheets/template1.scss

代码语言:javascript
复制
.template1 {
  .some-class1 {
    ...
  }
  .some-class2 {
    ...
  }
  ...
}

通过这种方式,您可以为每个组件完全分离样式(视需要而定),但仍然能够利用样式继承。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38865570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档