小编Pra*_*avi的帖子

使用钩子和类组件来反应功能组件

随着React 中钩子的引入,现在的主要困惑是何时使用带钩子和类组件的功能组件,因为在钩子的帮助下state,lifecycle hooks即使在功能组件中也可以获得和部分.所以,我有以下问题

  • 钩子的真正优点是什么?
  • 何时使用带钩子和类组件的功能组件?

例如,带有钩子的功能组件无法像类组件那样帮助执行.他们无法跳过重新渲染,因为他们没有shouldComponentUpdate实现.还有原因吗?

提前致谢.

javascript reactjs react-hooks

31
推荐指数
3
解决办法
9098
查看次数

在webpack 2.x中使用autoprefixer和postcss

如何使用autoprefixerwebpack 2.x.

以前,它曾经是这样的......

...

module: {
  loaders: [
     {
       test: /\.scss$/,
        loader: 'style!css!sass!postcss'
     }
   ]
},
postcss: () => {
  return [autoprefixer]
},

...
Run Code Online (Sandbox Code Playgroud)

但是,它不再起作用了.

如何将其重写为webpack@2.xx?

javascript reactjs webpack

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

相对URL作为Nock中的主机名

我需要模拟客户端HTTP请求.我isomorphic-fetch在客户端使用mocha,我正在使用并nock进行测试和嘲笑.我的所有客户请求都基于相对路径.由于这个原因,我无法提供主机名nock.有工作吗?

客户端:

fetch('/foo') //hostname: http://localhost:8080
.then(res => res.json())
.then(data => console.log(data))
.catch(e => console.log(e))
Run Code Online (Sandbox Code Playgroud)

测试套件

nock('/')
.get('/foo')
.reply(200, {data: "hello"})
Run Code Online (Sandbox Code Playgroud)

这是失败的,因为我没有给出正确的主机名nock.难道我做错了什么?

javascript mocha.js fetch nock

17
推荐指数
2
解决办法
3575
查看次数

如何在react-apollo中强制更新数据缓存?

refetch重新访问数据供电的页面时如何获取新数据react-apollo

说,我第一次访问列表页面.apollo将获取查询并默认缓存它.因此,当您在会话期间再次访问同一页面时,它将从其缓存存储中填充数据.apollo每次组件安装时如何强制重新获取数据?

apollo reactjs graphql react-apollo

7
推荐指数
2
解决办法
6749
查看次数

使用 CSS 嵌套情感

我有以下 JSX 结构。

<div css={content} style={{ minHeight: props.minHeight }}>
  <p css={description}>{props.description}</p>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我需要编写一种样式,该样式将更改悬停description时的背景。content如何使用 css 对象在情感中编写它。

我尝试过这样做。但这没有用。

const description = css({
  background: 'yellow'
})

const content = css({
  '&:hover': {
     [description]: {
        background: 'red',
     },
   },
})
Run Code Online (Sandbox Code Playgroud)

提前致谢!

javascript css emotion reactjs

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

如何在 vscode 中启用嵌入式语言智能感知和自动完成?

我有一个用例,我有一种语言 X,其中我支持 HTML。由于我在 VScode 中将文件扩展名关联为“.x”,因此我没有获得 X 内 HTML 的自动完成和属性建议。如何解决这个问题。

我尝试过的方法,

  • 创建了语言 X 的扩展。在扩展中,我获取了vscode.html并在 activate 方法中激活了它。
const htmlPluginId = 'vscode.html';

export const activate = () => {
  const htmlPlugin = vscode.extensions.getExtension(htmlPluginId);
  const ht = await htmlPlugin.activate();
}
Run Code Online (Sandbox Code Playgroud)

这不起作用。我猜想,HTML 插件与 X 语言运行没有关联。

  • 创建了语言服务器和客户端,我在其中使用 HTML 语言服务来执行完成和其他任务。这有效。但是,我觉得我在重复已经存在的东西vscode-html-languageserver
import {getLanguageService} from 'vscode-html-languageservice';

let connection = createConnection();

let documents = new TextDocuments(TextDocument);
const htmlLanguageService = getLanguageService();

connection.onCompletion((textDocumentPosition) => {
  const document = documents.get(textDocumentPosition.textDocument.uri);
  const htmlDocument = htmlLanguageService.parseHTMLDocument(document!);
  if (htmlDocument.roots.length > 0) { …
Run Code Online (Sandbox Code Playgroud)

javascript typescript visual-studio-code vscode-extensions

7
推荐指数
0
解决办法
422
查看次数

在CSS模块中使用SCSS变量

我有一个_color.scss文件,其中包含400种颜色作为变量。我喜欢20个需要在其样式中使用此颜色变量的组件。

我正在使用SCSS + CSS模块构造样式。到目前为止,我正在将其导入_color.scss每个组件的中style.scss

例:

component1.scss

@import "color.scss";
Run Code Online (Sandbox Code Playgroud)

component2.scss

@import "color.scss";
Run Code Online (Sandbox Code Playgroud)

component3.scss

@import "color.scss";
Run Code Online (Sandbox Code Playgroud)

以前,当我独立使用SCSS时,我会将导入color.scss到我的系统中,index.scss然后导入它下面的所有其他样式。这样,变量将在所有组件中可用。

例:

//index.scss
@import "color.scss";
@import "component1.scss";
@import "component2.scss";
@import "component3.scss";
Run Code Online (Sandbox Code Playgroud)

现在,所有下的变量_color.scss将可用下component1.scsscomponent2.scsscomponent3.scss

有没有办法做与此类似的事情CSS Modules + SCSS?一个声明全局变量的地方?

sass reactjs webpack css-modules react-css-modules

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

将devDependencies和依赖项与yarn一起安装

是否有可能安装devDependenciesdependencies纱一起?

例如,如果要安装reactwebpack。React是一个依赖关系,而webpack是一个开发依赖关系。要安装两者,我需要运行这两个命令

yarn add react
yarn add webpack -D
Run Code Online (Sandbox Code Playgroud)

是否可以将它们组合为一个命令,或者有其他选择吗?就像在不运行多个命令的情况下同时安装devDependencies和依赖项一样。

javascript node.js npm yarnpkg

5
推荐指数
3
解决办法
4490
查看次数

使用'let'作为变量名称不会在google v8中引发任何错误

我在chrome开发者控制台中编写了一些随机代码.令我惊讶的是,chrome让我let用作变量名,这是一个完全错误let的保留关键字.我需要明白为什么会这样.

场景:

var const = 78 //throws an error as expected

var function = 46 //throws an error as expected

var let = 56 //didn't throw an error :O

let //prints 56, which is wrong because 'let' is a keyword

let ab = 90

ab //prints 90 as expected
Run Code Online (Sandbox Code Playgroud)

这个缺陷存在于node.但是,当我在Babel REPL中尝试它时,它会抛出一个错误.

我认为这与Google v8有关

javascript google-chrome v8 node.js ecmascript-6

4
推荐指数
2
解决办法
165
查看次数

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

拆分空字符串应该返回空数组

如果我使用

''.split(',')
Run Code Online (Sandbox Code Playgroud)

我得到的['']不是空数组[].

如何确保空字符串总是返回一个空数组?

javascript arrays

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

为什么在 ReactJS 中需要用大括号括起 const 名称

render () {
  const { params } = this.props.params
  return (
   <div>{ params.article }</div>
  )
}
Run Code Online (Sandbox Code Playgroud)

为什么 params 需要用大括号括起来,它可能只是 'const params = this.props.params'

javascript ecmascript-6 reactjs

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

稀疏数组的长度

我有一个数组将采用n值,但值将在不同的时间添加到不同的索引.但是,我需要在特定时间的数组长度.

情况1

var a = [1,2,3,3,4]

a.length //Returns 5 - OK
Run Code Online (Sandbox Code Playgroud)

案例2

var a =[]
a[20] = 2
a.length //Returns 21 but I would like it to return 1
Run Code Online (Sandbox Code Playgroud)

如何获得长度1情况下,2

javascript

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