小编cad*_*zah的帖子

Webpack 中 Webpack-Manifest-Plugin 的用途

在官方文档中说在应用Code Splitting和生成chunk文件时,如果chunk代码改变,那么它的文件名就会改变。但是index.html,使用chunk代码文件的哪个不能更改其<script>标记中的文件名,因此在这种情况下manifest.json,由 生成的webpack-manifest-plugin将有助于映射[name].js[name].[hash].js.

但是与文档所说的相反,似乎每次我运行 webpack 来构建我的代码时,都会在其文件中生成具有新哈希值的新代码(以防代码中的某些内容发生更改),并且HTML-Webpack-Plugin会自动注入<script>具有新名称的标签代码的文件。这个好像没必要用webpack-manifest-plugin,我什至看不到用在哪里manifest.json

如果您正在寻找我的webpack.config.js

const path = require('path')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
const HTMLWebpackPlugin = require('html-webpack-plugin')
const ManifestPlugin = require('webpack-manifest-plugin')

module.exports = {
  entry: ["core-js/stable", "regenerator-runtime/runtime", "./src/index.jsx"],
  output: {
    filename: '[name].[chunkhash].js',
    path: path.resolve(`${__dirname}/build`)
  },
  mode: "none",
  optimization: {
    runtimeChunk: 'single',

    splitChunks: {
      cacheGroups: {
        vendor: …
Run Code Online (Sandbox Code Playgroud)

javascript webpack

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

带有 React Hooks 的 HoC

我正在尝试从 with 移植class componentreact hookswith Context API,但我无法弄清楚出现错误的具体原因是什么。

首先,我的代码:

// contexts/sample.jsx
import React, { createContext, useState, useContext } from 'react'
const SampleCtx = createContext()

const SampleProvider = (props) => {
  const [ value, setValue ] = useState('Default Value')
  const sampleContext = { value, setValue }
  return (
    <SampleCtx.Provider value={sampleContext}>
      {props.children}
    </SampleCtx.Provider>
  )
}

const useSample = (WrappedComponent) => {
  const sampleCtx = useContext(SampleCtx)
  return (
    <SampleProvider>
      <WrappedComponent
        value={sampleCtx.value}
        setValue={sampleCtx.setValue} />
    </SampleProvider>
  )
}

export {
  useSample …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-context react-hooks

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

字符串和函数的 React Ref 属性之间的区别

我是 React Web 开发的新手,我正在研究 Component ref。我发现了这个注释:

您可以将函数分配为 JSX的ref属性。此函数仅在安装元素时运行一次。在此函数中,您可以将 DOM 节点放入实例的属性中。

<input ref={(input) => {this.emailInput = input}}
  className="form-control"
  type="text"
  placeholder="cad.co" />
Run Code Online (Sandbox Code Playgroud)

在目前的官方文档中,推荐使用函数作为 ref,并且提到字符串 ref 在未来的版本中可能会被弃用(https://reactjs.org/docs/refs-and-the-dom.html#legacy -api-string-refs)。

我大致了解refsref用作引用变量,并且可以使用ref属性字符串文字

但我不明白如何将 ref 属性与函数参数一起使用。它如何与将字符串属性用于 ref 的工作相同或相似?

javascript reactjs

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

用React.cloneElement()保存的引用

我不明白用React官方文档写的声明:

cloneElement()

React.cloneElement(
  element,
  [props],
  [...children]
)
Run Code Online (Sandbox Code Playgroud)

克隆并使用element作为起点返回一个新的React元素。生成的元素将具有原始元素的道具,而新的道具将被浅层合并。新的孩子将替换现有的孩子。原始元素的key和ref将被保留。

React.cloneElement()几乎等同于:

<element.type {...element.props} {...props}>{children}</element.type>
Run Code Online (Sandbox Code Playgroud)

但是,它也保留引用。这意味着,如果您得到一个带有裁判的孩子,则不会意外地从祖先那里偷走它。您将获得与新元素相同的引用。

令我感到困惑的是这句话,这意味着,如果您得到一个带有裁判的孩子,您就不会意外地从祖先那里偷走它。您将获得与新元素相同的引用。

如果我理解正常,即使父级被克隆,指向父级组件中子元素的引用也会保留。因此,在之后React.cloneElement(Parent),有两个单独的Parents(内部具有相同的深层值,包括ref),并且它们分别具有refs,并且这些refs指向同一单个Child。我可以吗?

祖先怎么办?在这种情况下,祖先是什么?

javascript reactjs

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

kubectl 和 minikube-kubectl 的区别

我使用 Mac OS 作为开发环境。

如果我安装minikubekubectl将使用本地集群minikube作为默认选项。我发现我可以使用kubectlminikube前缀的命令- 就像下面一样:

$ minikube kubectl get pods
Run Code Online (Sandbox Code Playgroud)

所以我试了一下,kubectl下载过程开始了。所以我可以得到kubectl我的 Mac 和kubectlinminikube不相同。但是thie是什么意思?

kubernetes kubectl minikube

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

频繁调用 Performance API 会导致性能问题吗?

我想使用 来测量我的 web SPA 的内存使用情况performance.memory,目的是检测 web 应用程序的生命周期中是否存在任何问题,即内存泄漏。

因此,我需要在特定的时间间隔内调用此 API - 可以是每 3 秒、每 30 秒或每 1 分钟,...然后我有一个问题 - 要快速有效地检测任何问题,我会尽可能缩短间隔,但随后我开始担心性能。如果测量是一项如此昂贵的任务,那么测量本身可能会影响网络应用程序的性能(但希望我不认为是这种情况)

有了上述背景,我有以下问题:

  1. 这样performance.memory的方法是否会影响浏览器主线程的性能,因此我应该关心使用频率?

  2. 是否有正确的方法或程序来确定(Javascript)任务是否影响设备的性能?如果问题1不确定,那么我将不得不尝试其他方法来找出调用内存测量的正确间隔。

javascript performance google-chrome v8

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

重新选择的createSelector:它是否对嵌套对象进行深度比较?

如果second(嵌套对象)在 redux 中发生变化怎么办?如果它进行浅比较,它应该忽略更改并且不重新渲染。

我在文档中看到的所有示例,它们都基于一个简单的对象,其中浅比较是可以的。

// assume state is:  {data: {first : {second { } } }}

const selectData = state => state.data;

const selectSecond = createSelector(
    selectData,
    data => data
);

Run Code Online (Sandbox Code Playgroud)

reactjs react-redux reselect

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