小编neh*_*ist的帖子

Sass在WordPress中

我想在我的一个wordpress项目中使用SASS(这将成为未来项目的样板).我希望以符合以下标准的方式执行此操作:

  • Passess sass-lint
  • 遵循Wordpress标准(例如主题标题)
  • 清洁,一致且易于维护

我有一些想法,但没有一个符合上述标准.

1.删​​除style.css并单独使用Sass

/index.php
/... other wordpress files ...
/assets/sass/main.scss
/assets/sass/...other sass files...
Run Code Online (Sandbox Code Playgroud)

运行后sassstyle.css会在根目录下创建.

优点:

  • 一致性
  • 易于维护

缺点:

  • SCSS-Lint不喜欢"WordPress主题标题评论",因为它更喜欢//评论
  • 如果没有编译sass,就无法在WordPress后端选择主题

2. style.css同时使用和Sass

/index.php
/style.css
/...other wordpress files...
/assets/sass/main.scss
/assets/sass/... other sass files...
Run Code Online (Sandbox Code Playgroud)

优点:

  • 基本上解决了(1)的缺点
  • 即使它不应该那样; style.css无需任何工具即可轻松添加快速更改

缺点:

  • 前后矛盾
  • 冗余
  • 需要多个CSS请求(一个用于style.css,一个用于编译的sass)

另外我最大的问题是:在哪里放置编译的SASS?与它连接style.css似乎相当奇怪.

有任何想法吗?谢谢!

css wordpress sass

30
推荐指数
3
解决办法
3018
查看次数

Reflect.getMetadata 和 Reflect.getOwnMetadata 有什么区别?

正如标题中所说:reflect-metadataAPI 提供了一个getMetadata方法和一个getOwnMetadata- 这里有什么区别?等也一样hasOwnMetadata

typescript reflect-metadata

9
推荐指数
1
解决办法
4646
查看次数

收集修饰的类(没有注册表类)

我有一个事件调度程序类,它应该在某些事件中触发侦听器.我想通过装饰器注册事件监听器 - 这已经有效,但我对我当前的解决方案并不是100%满意.

目前,事件监听器由全局注册表"收集",然后在事件调度程序中注册.在代码中说我的(简化)装饰器看起来像:

// Decorator
export const EventListener = (events: string[]) => {
  return (target: Type<object>): void => {
    EventListenerRegistry.set(target);
  };
};

// Listener example
@EventListener(['start'])
class OnStart {
  public handle() {
  }
}
Run Code Online (Sandbox Code Playgroud)

OnStart监听器将尽快触发start事件被调度.

我不喜欢这种方法是需要EventListenerRegistry看起来像:

export const EventListenerRegistry = (new class {
    protected listeners = [];

    public set(target) {
        this.listeners.push(target);
    }
});
Run Code Online (Sandbox Code Playgroud)

导入EventListenerRegistry意味着在任何时候导入相同的实例,使其非常"单身".

我的听众是require通过glob- 所以这种方法可以自动将我的听众注册给我的调度员而无需做任何额外的工作.

但除了使用(丑陋的)注册表类之外还有其他可能性吗?

typescript

8
推荐指数
1
解决办法
88
查看次数

ES6 模块目录结构

我在 Google 上没有找到任何内容,但我想知道是否有在目录和模块导出方面构建 ES6 项目的“最佳实践”。

目前我确实有两种不同的方式:

对每个模块使用index.js并导出所有内容:

app.js
modules/
  ModuleName/
    ModuleFile.js
    index.js
Run Code Online (Sandbox Code Playgroud)

ModuleFile.js看起来就像export class ModuleFile { }index.js简单的

export * from 'ModuleFile'
Run Code Online (Sandbox Code Playgroud)

这使得导入带有import {ModuleFile} from 'modules/ModuleName'. 可读,但index.js每个模块都需要一个,即使该模块只有一个文件。

第二种方法是不使用index.js文件,但这意味着导入语句会变得稍微多余import {ModuleFile} from 'modules/ModuleName/ModuleFile'

关于这个主题有什么最佳实践吗?

javascript

5
推荐指数
1
解决办法
1646
查看次数

TypeScript 中对象内的查找类型

我试图在对象中引入查找类型。假设我的对象看起来像

class PersonList {
  persons = {
    john: 'description of john',
    bob: 'description of bob'
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要一个吸气剂来获取一个人,persons但不指定对象persons

来自getProperty文档

function getProperty<T, K extends keyof T>(obj: T, key: K) {
  return obj[key];  // Inferred type is T[K]
}
Run Code Online (Sandbox Code Playgroud)

想要有一个obj我想在吸气剂中摆脱的东西。我尝试过代理 getter,但没有成功:

class PersonList {
  persons = {
    john: 'description of john',
    bob: 'description of bob'
  };

  getPerson(name) {
    return this.getProperty(this.persons, name);
  }

  private getProperty<T, K extends keyof T>(obj: T, key: K) {
    return obj[key]; …
Run Code Online (Sandbox Code Playgroud)

typescript

4
推荐指数
1
解决办法
7876
查看次数

如何将 NGXS 与路由解析器一起使用?

假设我有一个管理文章的 CRUD 应用程序。结合路由参数使用NGXS的正确方法是什么?

当我打开应用程序时,我在/. 单击按钮会将我带到/articles

  • 现在会发生什么?我是否需要一个路由解析器来调度 NGXS 操作来加载文章,或者是文章的容器组件负责?
  • 当文章列表已加载(由解析器或容器本身)时,我想单击特定文章,/articles/1例如将我带到。再说一遍:我在这里需要一个路由解析器吗?

如果我需要路由解析器:如何在加载状态时在特定组件中显示加载微调器(例如,在文章列表中显示微调器)?唯一可能的解决方案是Observable<Observable>从解析器返回一个。

如果不是:如果我直接前往/articles/1谁会为我的状态正确发送必要的操作(在这种情况下,文章本身还没有加载,那么应该如何加载一篇特定的文章)?

我找不到有关此主题的任何资源。我发现的所有示例应用程序都不介意当前的路线,这会导致非常糟糕的 UX imo。

angular ngxs

3
推荐指数
1
解决办法
1894
查看次数

将坐标存储在关联数组中

我正在寻找一种在VBS中存储数据的方法

[ 0 => [posX, posY], 1 => [posX, posY] ]
Run Code Online (Sandbox Code Playgroud)

有点一个关联数组,坐标为值.

vbscript

2
推荐指数
1
解决办法
147
查看次数

是否存在一种非实例化类?

假设以下代码:

interface Foobar {}

class Foo implements Foobar {}
class Bar implements Foobar {}

const arr: Foobar[] = [Foo, Bar];
Run Code Online (Sandbox Code Playgroud)

这可以编译,事实并非如此。typeof Foo或者typeof BarFunction- 是有道理的,因为到目前为止它们还没有被实例化。

有没有比存储非实例化类更好的方法arr: any[]

typescript

2
推荐指数
1
解决办法
1566
查看次数

为什么反射元数据仅在使用装饰器时有效?

没有装饰器,元数据会丢失-但是为什么呢?

const Baz = () : ClassDecorator => {
  return target => {}
}
class Bar {}
@Baz()
class Foo {
  constructor(bar: Bar) {}
}
console.log(Reflect.getMetadata('design:paramtypes', Foo));
Run Code Online (Sandbox Code Playgroud)

返回[Function: Bar],这很好。但是如果没有@Baz装饰器(实际上不执行任何操作),它将返回undefined。为什么?

typescript reflect-metadata

1
推荐指数
1
解决办法
891
查看次数

在绝对定位上重叠div

关于这个主题有很多主题,但没有一个能解决我的问题.

<div class="outer"> <!-- fixed height -->
  <div class="inner">content</div> <!-- needs to be placed AFTER outer -->
</div>
<!-- the inner div should be placed here with css AND NOT overlap any of the following content -->
<div>no overlap please</div>
Run Code Online (Sandbox Code Playgroud)

outer具有精确的高度,而inner高度取决于其内容.我需要移动inner outer容器; 没有它与以下内容重叠.因为我不知道的高度innerDIV我不能只使用marginouter.

如果要求:结构必须是这样的.它是一个自举旋转木马,我需要将旋转木马的指示器放在底部 - 指示器需要在滑块div内.

编辑:问题不是如何将inner容器放在容器的底部outer.通过将其定位为绝对并将其设置为底部的问题是内容与即将到来的div重叠.

有任何想法吗?谢谢!

html css

0
推荐指数
1
解决办法
491
查看次数