Questions tagged «reactjs»

React(也称为React.js或ReactJS)是Facebook开发的用于构建用户界面的JavaScript库。它使用基于组件的声明式范例,旨在既高效又灵活。

5
如何将一小部分Markdown解析为React组件?
我有Markdown的很小一部分,还有一些我想解析为React组件的自定义html。例如,我想将以下字符串转换为: hello *asdf* *how* _are_ you !doing! today 放入以下数组: [ "hello ", <strong>asdf</strong>, " ", <strong>how</strong>, " ", <em>are</em>, " you ", <MyComponent onClick={this.action}>doing</MyComponent>, " today" ] 然后从React渲染函数返回它(React会将数组正确渲染为格式化的HTML) 基本上,我想让用户选择使用一组非常有限的Markdown来将其文本转换为样式化的组件(在某些情况下是我自己的组件!) 危险地使用SetInnerHTML是不明智的,并且我不想引入外部依赖关系,因为它们都非常繁重,并且我只需要非常基本的功能。 我目前正在做这样的事情,但是它非常脆弱,并且不能在所有情况下都起作用。我想知道是否有更好的方法: function matchStrong(result, i) { let match = result[i].match(/(^|[^\\])\*(.*)\*/); if (match) { result[i] = <strong key={"ms" + i}>{match[2]}</strong>; } return …

3
useEffect-更新状态时防止无限循环
我希望用户能够对待办事项列表进行排序。当用户从下拉列表中选择一项时,它将设置,sortKey这将创建的新版本setSortedTodos,并依次触发useEffectand调用setSortedTodos。 下面的示例完全按照我想要的方式工作,但是eslint提示我将其添加todos到useEffect依赖项数组,如果执行此操作,则会导致无限循环(正如您期望的那样)。 const [todos, setTodos] = useState([]); const [sortKey, setSortKey] = useState('title'); const setSortedTodos = useCallback((data) => { const cloned = data.slice(0); const sorted = cloned.sort((a, b) => { const v1 = a[sortKey].toLowerCase(); const v2 = b[sortKey].toLowerCase(); if (v1 < v2) { return -1; } if (v1 > v2) { …

3
useMemo或useCallback VS useRef的空依赖关系
在这个GitHub问题中,我基本上建议更改: x = useCallback( ... , []); 至: x = useRef( ... ).current; 两者相同,但是使用useRefReact不会比较依赖关系。 为此,有一个问题的答复: 有没有一种情况,没有依赖的useMemo或useCallback比useRef更好的选择? 我想不出一个,但我可能忽略了一些用例。 那么有人能想到这种情况吗?

1
可以将PWA应用发布到应用商店和Play商店吗
我正在创建一个React JS Web应用程序,该应用程序最终将转换为PWA,以便用户可以将其安装在他们的移动设备上。现在,客户要求找出一种方法来将这些PWA应用程序推送到Apple Store和Google Store。因此,我的疑问是我们是否具有将Progessive Web Apps转换为apk或ipa文件的工具,以便可以将其放置到Apple Store或Play Store。 我在Google上搜索了一下,现在感到困惑,因为有些人说这是可能的,有些人说在Apple Store中是不可能的。我还看到了一些工具,例如PWABuilder,但是我不确定哪个工具适合使用,以及我们是否可以将PWA应用程序发布到应用商店和Play商店。 在这方面的任何帮助将不胜感激。 谢谢

2
通过导入ES6模块来加载和使用旧版JS模块(例如IIFE)
对于具有旧版本的应用程序中的某些库代码,我具有IIFE函数,这些代码需要适用于IE10 +(无需加载ES6模块等)。 但是,我开始开发一个将使用ES6和TypeScript的React应用,并且我想重用我已经拥有的代码而不复制文件。经过一番研究,我发现我想使用UMD模式来允许这些库文件既可以作为<script src=*>导入工作,又可以让React应用程序通过ES6模块加载来导入它们。 我想出了以下转换: var Utils = (function(){ var self = { MyFunction: function(){ console.log("MyFunction"); } }; return self; })(); 至 (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : (factory((global.Utils = …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.