小编Joj*_*oji的帖子

使用 styled-components 在组件/元素之间共享样式

我正在与 Gatsby 一起使用样式组件。我使用 styled-components 来设置LinkGatsby 为我的主页提供的组件的样式。

const HomePageLink = styled(Link)`
  display: inline-block;
  font-size: ${fontSizes.xxlarge};
  text-decoration: none;
  box-shadow: none;
  :link,
  :visited {
    color: ${colors.slate};
  }
  :hover,
  :active {
    color: ${colors.red};
  }
`
Run Code Online (Sandbox Code Playgroud)

但是我意识到我还需要<a />使用完全相同的样式来设置纯 html 标签的样式。我想知道有没有办法让上面的样式组件适应<a />标签而不需要像这样重复代码

const HomePageAnchorTag = styled.a`
  display: inline-block;
  font-size: ${fontSizes.xxlarge};
  text-decoration: none;
  box-shadow: none;
  :link,
  :visited {
    color: ${colors.slate};
  }
  :hover,
  :active {
    color: ${colors.red};
  }
`
Run Code Online (Sandbox Code Playgroud)

javascript css reactjs gatsby styled-components

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

JavaScript:有没有办法在响应不正常时检测响应是否包含 json 格式的错误消息

我正在编写一个简单的包装器fetch

async function apiCall(
  endpoint: string,
  {
    data,
    headers: customHeaders,
    ...customConfig
  }: { data?: Object; headers?: Object } = {}
) {
  const config = {
    method: data ? 'POST' : 'GET',
    body: data ? JSON.stringify(data) : undefined,
    headers: {
      'content-type': data ? 'application/json' : undefined,
      ...customHeaders,
    },
    ...customConfig,
  }

  return fetch(endpoint, config as any).then(async (response) => {
    if (response.ok) {
      const json = await response.json() // 
      return json
    } else {
    //   what if `response` contains error …
Run Code Online (Sandbox Code Playgroud)

javascript json http

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

React + websocket:有没有办法限制 websocket 更新组件的次数

我有一个订单簿组件,它正在从此 websocket 端点获取数据"wss://ws.bitstamp.net"

订阅在内部触发useEffect

 useEffect(() => {
    const subscribe = {
      event: "bts:subscribe",
      data: {
        channel: `order_book_${currencyPair}`
      }
    };
    const ws = new WebSocket("wss://ws.bitstamp.net");

    ws.onopen = () => {
      ws.send(JSON.stringify(subscribe));
    };
    ws.onmessage = (event) => {
      const response = JSON.parse(event.data);
      setOrders(response.data);
    };
    ws.onclose = () => {
      ws.close();
    };

    return () => {
      ws.close();
    };
  }, [currencyPair]);

Run Code Online (Sandbox Code Playgroud)

但现在的问题是更新太频繁了。我希望它最多每 2 秒更新一次。我想知道我怎样才能做到这一点?我的第二个问题是,有没有办法让我知道 WebSocket 端点向前端传输数据的频率?我对 WebSocket 还很陌生,但我知道它是全双工的,并且服务器正在将数据推送/流式传输到客户端。我很好奇是否有办法知道前端的频率?

这是现场演示https://codesandbox.io/s/orderbook-forked-r2719?file=/src/OrderBook.js

javascript websocket reactjs

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

只有栈可以存储局部(指针)变量,堆不行吗?

我是 C 和 C++ 新手。我知道每当调用一个函数时,它的变量都会在堆栈上分配内存,包括变量恰好是一个指针,该指针指向通过mallocor分配在堆上的数据new(但我听说不能保证malloc分配的存储100%在堆上,如果我错了,请纠正我)。例如,

\n
Void fn(){\n    Member *p = new Member()\n}\n \n
Run Code Online (Sandbox Code Playgroud)\n

或者

\n
Void fn() {\n        int *p = (int*) malloc( sizeof(int) * 10 );         \n}\n
Run Code Online (Sandbox Code Playgroud)\n

如果我错了,请纠正,在这两种情况下,变量p(保存堆上分配的对象的地址)都在堆栈上,并且它指向堆上的对象。\n所以说所有的都正确吗?我们声明的变量位于堆栈上,即使它们可能指向堆上的某些内容?\n让\xe2\x80\x99s 说局部变量指针的地址p加载到内存地址001,它具有位于堆上的成员对象的地址,该地址是002。我们可以画这样的图。\n在此输入图像描述

\n

如果这是正确的,我的下一个问题是,我们是否可以拥有一个实际位于堆上的指针,并且它指向位于堆栈上的变量?如果不可能,该指针是否可以指向位于堆上的变量?\n也许这个问题的另一种表达方式是:为了访问堆中的某些内容,我们只能通过堆栈上的指针来访问它?\n可能的图表如下所示

\n

如果可能的话,我可以在这里举个例子吗?

\n

在此输入图像描述

\n

c c++ malloc heap-memory

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

是否有可能有不以自己的内存结束的变量?

在学习C和C++时,有人告诉我:

  1. 每个变量都有自己的内存块
  2. 并且该内存块的地址在变量的生命周期内永远不会改变。

所以我想知道这两种说法实际上是真的吗?是否有可能有不以自己的内存结束的变量?

例如

int a = 1
int b = a
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,是否有可能任何变量都没有分配其专用的内存块?例如,当变量直接加载到寄存器而不首先存储在内存中时

c c++

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

为什么JavaScript的字符串使用UTF-16,但一个字符的实际大小只能是一个字节?

根据这篇文章

在内部,JavaScript 源代码被视为 UTF-16 代码单元序列。

这个IBM 文档说

UTF-16 基于 16 位代码单元。因此,每个字符可以是16位(2字节)或32位(4字节)。

但我在Chrome的控制台测试发现英文字母只占用1个字节,而不是2或4个字节。

new Blob(['a']).size === 1

我想知道为什么会这样?我在这里错过了什么吗?

javascript utf-16

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

标签 统计

javascript ×4

c ×2

c++ ×2

reactjs ×2

css ×1

gatsby ×1

heap-memory ×1

http ×1

json ×1

malloc ×1

styled-components ×1

utf-16 ×1

websocket ×1