小编Har*_*til的帖子

无法将SCSS变量设置为CSS变量?

考虑以下SCSS:

$color-black: #000000;

body {
    --color: $color-black;
}
Run Code Online (Sandbox Code Playgroud)

当使用node-sass 版本4.7.2进行编译时,它会生成以下CSS:

body {
    --color: #000000; 
}
Run Code Online (Sandbox Code Playgroud)

当我使用4.8.3或更高版本编译相同的SCSS时,它产生以下内容:

body {
    --color: $color-black; 
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我检查了发布日志,但找不到任何有用的东西.另外,我想知道这种变化是否真实,为什么它只有轻微的版本更改?它应该不是主要版本吗?

另外,我的替代方案是什么?我应该使用插值吗?

css sass

5
推荐指数
2
解决办法
2300
查看次数

我们应该为Vue.js中的自定义表单组件使用本机输入事件吗?

考虑以下Vue.js代码:

<template>

    <form @input="doSomethingOnInput">

        <!-- Native form control -->
        <input v-model="title" type="text" />

        <!-- VUE.JS COMPONENT -->
        <!-- Custom form control -->
        <date-picker v-model="expiryDate"></date-picker>

        <!-- VUE.JS COMPONENT -->
        <!-- Another custom form control -->
        <color-picker v-model="badgeColor"></color-picker>

    </form>

</template>
Run Code Online (Sandbox Code Playgroud)

我有一个包含三个输入元素的表单。一个是本机输入元素,而其余两个是自定义输入元素。本机<input>激发input事件,使DOM树冒泡。

对于<date-picker><color-picker>本地input事件不会创建。但是,为了支持v-modelinput始终会触发自定义事件。现在,我知道如何input从这些自定义元素中触发本机事件。

问题是-我应该从这些自定义输入元素中触发本机输入事件吗? 作为可重用组件库的作者,我的用户可能想抓住input事件的顶部,即<form>我所展示的元素。 Vue.js是否建议这样做?并会引起任何无法预料的问题吗?

javascript vue.js vuejs2

5
推荐指数
0
解决办法
481
查看次数

我可以将JS代码从Svelte组件文件中移到其他文件js文件中吗?

我目前正在为下一个项目使用Svelte 3探索Bucklescript / ReasonML。典型的Svelte组件是一个.svelte文件:

<script>
  let name = 'world';
</script>

<h1>Hello world!</h1>
Run Code Online (Sandbox Code Playgroud)

取而代之的是,我可以script使用带有src或等效标记的代码将JS代码保存在单独的文件中吗?

<script src='./some-file.js'></script>
Run Code Online (Sandbox Code Playgroud)

通过将js代码移动到单独的文件中,可以将Bucklescript编译器的目标(是JS文件)用于该组件。

Vue.js的SFC .vue文件已支持此功能。

附带说明:我可以为此使用Vue.js,但是存在虚拟DOM对于遗留代码库是有问题的。而且,Svelte在运行时正在减少,因此非常可取。另外,this在Vue中使用该功能会使Ocaml / Reason感到尴尬。

javascript svelte

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

如何在 TypeScript 中的单个声明文件中扩充多个模块?

我注意到模块增强的行为非常奇怪。我的文件夹中有一个agument.d.ts文件,src<ROOT>/src/augment.d.ts. 在此文件中,我正在为 Webpack 创建一个模块raw-loader,并增强现有hapi模块。代码如下所示:

import { Server } from 'hapi';

declare module '*.view.html' {
    const contents: string;
    export default contents;
}

declare module 'hapi' {

    interface Server {
        x: string;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的tsconfig.json文件中,我使用 的默认值typeRoots。我的include设置为["src/**/*.ts"],.

问题是- 我注意到模块增强 forhapi有效,但不适用于*.view.html; 编译器不断为与文件关联的所有导入抛出错误html

然而,奇怪的行为是当我将定义移动*.view.html到其他文件即 -xyz.html.d.ts时,它就可以完美工作。

这是预期的行为吗?我们是否应该为每个声明文件添加一个模块?任何我不知道的规则!

typescript

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

如何使用禁用的 CSS 伪类来设置具有 aria-disabled 属性的元素样式?

我正在创建一个按钮组件,用于aria-disabled管理禁用状态而不是disabled属性来满足可访问性要求。

早些时候,我使用 CSS 伪类:disabled来设置禁用组件的样式。有没有办法使用它来aria-disabled="true"设置按钮和aria-*属性的样式?

html css accessibility

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

GenServer 可以在 Elixir 中拥有自己的结构吗?

设想:

  • 我有一个简单GenServer的管理一些状态。
  • 目前,我正在使用map来管理我的 state。但随着我向该州添加更多数据,它正在增长。

问题:

  • 那么,为了获得一些编译时保证,struct我的GenServer模块中可以有 a吗?
  • 而且,如果是,这是一种正确的方法吗?
  • 如果没有,有哪些替代方案?

elixir gen-server

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

css`calc()`函数是否支持`fr`单元?

正如问题的标题所示,CSS calc()功能支持fr单元是否在以下示例中使用?

.sample-grid {
    --main-fr: 60fr;
    grid-template-columns: var(--main-fr) 1rem calc(100 - var(--main-fr));
}
Run Code Online (Sandbox Code Playgroud)

我最初的猜测是它没有 - 在Firefox和Chrome中都没有.

html css css3 css-grid

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

Elixir中==和===有什么区别?

我开始使用Elixir.我读到Elixir具有弱相等==和严格相等===运算符.

来自JavaScript背景,==感觉像是一个大错误.Elixir有什么不同吗?我错过了什么?什么时候我应该在Elixir中分别使用弱强算子?

到目前为止,我知道,在Elixir的JavaScript "1" == 1收益率true中它会产生false.这意味着至少保留了类型信息.如果是这样,那么弱平等的用途是什么?

elixir

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

如何在ReasonML中编写带有类型变量的函数以接受任何类型的参数?

我注意到ReasonML中的类型推断机制非常奇怪的行为。我有一条包含识别功能的记录。当我直接使用记录实例时,编译器不会抱怨。但是,当我将记录传递给另一个函数并尝试调用标识函数时,则键入推断会抱怨:

type idRecord('a) = {
  // idFn can take any type.
  idFn: 'a => 'a
};

let myRecord: idRecord('a) = {
  idFn: anyVal => anyVal
};

// WORKS ABSOLUTELY FINE
let x1 = myRecord.idFn(10);
let x2 = myRecord.idFn("Something");

let runProgram = (program: idRecord('a)) => {

  let _y1 = program.idFn(10);

  // BOOM: ERROR
  // This expression has type string but an expression was expected of type int
  let _y2 = program.idFn("Something");
}

runProgram(myRecord);
Run Code Online (Sandbox Code Playgroud)

错误是:

该表达式的类型为字符串,但预期为int类型的表达式

我需要怎样使类型推断高兴地接受任何类型的参数?

polymorphism ocaml types reason

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

使用Web组件而不注册为自定义元素?

是否可以实例化Web组件而无需将其注册到 CustomElementRegistry?考虑一个简单的组件:

export class MyCustomElm extends HTMLElement {

  constructor() {
    super();

    this.attachShadow({ mode: 'open' });
  }

  connectedCallback() {
    this.shadowRoot!.innerHTML = `
      <div>Hello world</div>
    `;
  }
}

// Is it really required?
customElements.define('my-custom-elm', MyCustomElm);
Run Code Online (Sandbox Code Playgroud)

我正在使用故事书来构建Web组件库。所有示例/演示都是Web组件。该代码将始终使用构造函数语法,即new MyCustomElm()初始化组件。永远不会通过纯HTML使用它。

我试图不注册该元素,但它似乎不起作用。如果在不注册组件的情况下调用了构造函数,则会引发异常。由于演示组件很多,因此想出唯一的名称很快变得很麻烦。

或者,是否有任何方法可以将Storybook用于Web组件,而不必为故事设置额外的Web组件? (我尝试了DOM操作,但它也一发不可收拾。)

javascript web-component custom-element

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