小编c13*_*137的帖子

使用 eslint 强制存储库中的文件夹结构和名称

我希望在文件夹及其子文件夹的特定路径中强制使用名称结构

不仅是名称的样式(烤肉串、骆驼),还有文件夹和文件的实际名称

让我们以以下路径为例

./src/modules/module1
./src/modules/module2
./src/modules/module3
Run Code Online (Sandbox Code Playgroud)

每个提供的路径都应强制使用以下名称的子文件夹

services
components
style
Run Code Online (Sandbox Code Playgroud)

在这些路径上创建具有不同名称的嵌套文件夹应该无效

所以最终结果应该是这样的:

./src/modules/module1/services (valid)
./src/modules/module1/components (valid)
./src/modules/module2/components (valid)
./src/modules/module1/banana (not valid)
./src/modules/orange/yellow (valid)
Run Code Online (Sandbox Code Playgroud)

eslint 是合适的工具吗?我应该使用什么特定的插件?

我只能找到名称样式的解决方案,但没有找到固定命名结构的任何内容

我在reactJS项目中使用类型脚本,并寻找一个不与任何IDE耦合的解决方案

谢谢

javascript lint typescript reactjs eslint

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

ReactJS 使用 useState 双重渲染布尔状态

我只是在玩 ReactJS 并试图通过 useState 钩子找出一些奇怪的行为。

如果状态设置为与之前相同的原始值(布尔值),则不应重新渲染组件

const useScroll = ({positionToCross = 10}) => {

    const window = useWindow();
    const [isPositionCrossed, setIsPositionCrossed] = useState(window.scrollY > positionToCross);

    useEffect(() => {

        const onScroll = function (e) {

            window.requestAnimationFrame(function () {
                const lastKnownScrollPosition = window.scrollY;
                setIsPositionCrossed(lastKnownScrollPosition > positionToCross);
            });

        }

        window.addEventListener('scroll', onScroll);

        return () => {
            window.removeEventListener("scroll", onScroll)
        }

    }, []);


    console.log(`useScroll - render window.scrollY = ${window.scrollY.toFixed(0)} isPositionCrossed = `, isPositionCrossed)
    return {isPositionCrossed}
}
Run Code Online (Sandbox Code Playgroud)

这是控制台输出 - 您可以看到组件和钩子都以“true”渲染两次(滚动超过 100px 后)

"useScroll - render window.scrollY = …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-hooks

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

标签 统计

javascript ×2

reactjs ×2

eslint ×1

lint ×1

react-hooks ×1

typescript ×1