小编Joh*_*edy的帖子

npm包上"at"(@)前缀的含义是什么?

Angular Component Router文档中,我偶然发现了一个我从未见过的npm命令,我不明白发生了什么:

npm install @angular/router --save
Run Code Online (Sandbox Code Playgroud)

是什么意思@angular/router

整个字符串是包名吗?但是当我在npmjs.com上使用搜索时,我找不到那个包.并且命令行搜索确实没有返回这样的包:

npm search @angular/router
:No match found for "@angular/router"
Run Code Online (Sandbox Code Playgroud)

那么@angular/npm中的某种前缀机制呢?它是如何工作的?

javascript npm angular

218
推荐指数
4
解决办法
3万
查看次数

字段"浏览器"不包含有效的别名配置

我已经开始使用webpack2(准确地说v2.3.2),在重新创建配置后,我一直遇到一个我似乎无法解决的问题.我得到了(提前抱歉丑陋的转储):

ERROR in ./src/main.js
Module not found: Error: Can't resolve 'components/DoISuportIt' in '[absolute path to my repo]/src'
resolve 'components/DoISuportIt' in '[absolute path to my repo]/src'
  Parsed request is a module
  using description file: [absolute path to my repo]/package.json (relative path: ./src)
    Field 'browser' doesn't contain a valid alias configuration
    aliased with mapping 'components': '[absolute path to my repo]/src/components' to '[absolute path to my repo]/src/components/DoISuportIt'
      using description file: [absolute path to my repo]/package.json (relative path: ./src)
        Field 'browser' doesn't …
Run Code Online (Sandbox Code Playgroud)

commonjs npm webpack package.json webpack-2

115
推荐指数
14
解决办法
9万
查看次数

使用fs.writeFileSync将JSON对象写入JSON文件

我正在尝试将JSON对象写入JSON文件.代码执行没有错误,但是不是写入对象本身,所有写入JSON文件的是:

[object Object]
Run Code Online (Sandbox Code Playgroud)

这是实际写作的代码:

fs.writeFileSync('../data/phraseFreqs.json', output)
Run Code Online (Sandbox Code Playgroud)

'output'是一个JSON对象,该文件已经存在.如果需要更多信息,请告诉我.

json file fs node.js

90
推荐指数
3
解决办法
11万
查看次数

仅使用按位运算符添加两个整数?

在C#中,是否可以在不使用if..else,循环等的情况下执行两个32位整数的和?

也就是说,是否可以仅使用按位运算OR(|),AND(&),XOR(^),NOT(!),shift left(<<)和shift right(>>)来完成?

c# bit-manipulation

41
推荐指数
4
解决办法
6万
查看次数

如何使用useEffect挂钩注册事件?

我正在学习有关如何使用钩子注册事件的Udemy课程,讲师给出了以下代码:

  const [userText, setUserText] = useState('');

  const handleUserKeyPress = event => {
    const { key, keyCode } = event;

    if (keyCode === 32 || (keyCode >= 65 && keyCode <= 90)) {
      setUserText(`${userText}${key}`);
    }
  };

  useEffect(() => {
    window.addEventListener('keydown', handleUserKeyPress);

    return () => {
      window.removeEventListener('keydown', handleUserKeyPress);
    };
  });

  return (
    <div>
      <h1>Feel free to type!</h1>
      <blockquote>{userText}</blockquote>
    </div>
  );
Run Code Online (Sandbox Code Playgroud)

现在效果很好,但我不认为这是正确的方法。原因是,如果我理解正确,那么每次重新渲染时,事件都会每次都在注册和注销,而我根本不认为这样做是正确的方法。

所以我useEffect对下面的钩子做了一些修改

useEffect(() => {
  window.addEventListener('keydown', handleUserKeyPress);

  return () => {
    window.removeEventListener('keydown', handleUserKeyPress);
  };
}, []);
Run Code Online (Sandbox Code Playgroud)

通过使用一个空数组作为第二个参数,使组件只运行一次效果,即模仿componentDidMount。当我尝试结果时,奇怪的是,在我键入的每个键上都没有附加,而是被覆盖了。

我期待 …

javascript reactjs react-hooks

24
推荐指数
3
解决办法
9197
查看次数

围绕这个反应库代码的"{""}括号有什么意义?

我正在通过反应库代码.经过一段时间后,我发现了一段特殊的代码,我无法理解它的意义.有人可以帮忙吗?

var validateFormat = function () {};

{
  validateFormat = function (format) {
    if (format === undefined) {
      throw new Error('invariant requires an error message argument');
    }
  };
}
Run Code Online (Sandbox Code Playgroud)

这里为什么反应开发者将validateFormat包装成大括号?这样做有什么意义吗?

如果我执行以下操作,它的工作原理相同 -

var validateFormat = function () {};

validateFormat = function (format) {
   if (format === undefined) {
   throw new Error('invariant requires an error message argument');
   }
};
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 reactjs

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

反应组件的渲染数组

快速提问。有谁知道如何渲染组件数组?试图使开发人员更轻松地更改特定组件。(就像仪表板一样)。

组件清单文件

import React from 'react';
export default [
    <ComponentOne/>
    <ComponentTwo/>
];
Run Code Online (Sandbox Code Playgroud)

仪表板组件

import React from 'react';

import components from './../../components';

export default class Dashboard extends React.Component 
{
    render = () => {
        //Want to render the array of components here.
        return (
            <div className="tile is-parent">
                {components}
            </div>
        );
    };
}
Run Code Online (Sandbox Code Playgroud)

问题是我需要向其中添加密钥的一系列组件。然而!我似乎也无法向该组件添加密钥,不确定如何真正解释它,所以这是我尝试过的代码:

{components.map((component, key) => (
    <component key={key}/>
}
Run Code Online (Sandbox Code Playgroud)

如果执行上述操作,我不会收到“您必须应用密钥”错误,但是什么也没有呈现?我猜这是因为“组件”不存在或沿这些思路很怪异。

我也试过了,component.key = key;但是显然它不能让我对这种类型的对象进行操作吗?

我想我的后备方法是返回一个简写函数而不是一个数组,但是由于某种原因我喜欢该数组?对于大三学生来说似乎更简单。

arrays reactjs

12
推荐指数
3
解决办法
2万
查看次数

Typescript:成员的下划线约定

我有一堂课

class Email {
  private _from: string;
  private _to: Array<string>;
  private _subject: string;
}
Run Code Online (Sandbox Code Playgroud)

它将创建一个类似于以下内容的电子邮件对象:

{
  _from:'',
  _to:'',
  _subject:''
}
Run Code Online (Sandbox Code Playgroud)

这对我来说有点奇怪,因为我不能直接使用此对象发送给函数。取而代之的是,我必须转换对象,使其不带有下划线。因此,如何使用下划线约定或必须转换对象。

编辑:如果我确实删除'_'

如果我们命名不带下划线的私有变量,如何命名获取器和设置器?一个叫做Typescript工具箱的VSCode插件会创建这样的东西

public get $subject(): string { 
  return this.subject;
}
Run Code Online (Sandbox Code Playgroud)

$是个好习惯吗?

javascript typescript ecmascript-6 es6-class typescript2.0

6
推荐指数
3
解决办法
9476
查看次数

将“Operator Mono”与“Firacode”结合使用

我目前在 vs 代码中使用 operator mono 字体作为我的默认字体,现在我想向它添加 fira 代码字体,但我不知道如何添加它以使它们都工作。我尝试在字体系列设置中添加第二种字体,但第二种字体似乎替换了当前字体。我该怎么做?

我目前的坐姿:

"editor.fontFamily": "'Operator Mono'", "editor.fontLigatures": true

fonts visual-studio-code

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

如何隐藏微调器组件

我正在尝试使用react.js spinner组件,但我不知道如何在任务完成后隐藏它。

这是一个简单的代码笔,我在其中使用隐藏属性。我将其设置为 false 或 true 取决于我是否想显示它:

https://codepen.io/manish_shukla01/pen/GLNOyw

    <Spinner hidden={true} size={SpinnerSize.large} label="manish's large spinned" />
Run Code Online (Sandbox Code Playgroud)

reactjs office-js

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