{"description":"Articles Title: Testing-Library \u3067\u30e6\u30fc\u30b6\u306e\u6c17\u6301\u3061\u306b\u306a\u3063\u3066\u66f8\u304f\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u306e\u30c6\u30b9\u30c8 zenn.dev data-testid \u3067\u4e00\u6614\u524d\u307e\u3067\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u5074\u306f\u30c6\u30b9\u30c8\u3084\u308a\u307e\u304f\u3063\u3066\u3044\u305f\u306e\u3067\u3001accessibility\u3082\u8003\u3048\u3066\u3001\u3042\u308b\u3079\u304d\u59ff\u306bDOM\u3092\u69cb\u6210\u3057\u3066\u3044\u304f\u3053\u3068\u304c\u5927\u4e8b\u3060\u3068\u6539\u3081\u3066\u8a8d\u8b58\u3002 Semantic\u304c\u30ad\u30fc\u3067\u3059\u306d\u3002 Ditching useState and useReducer: Why useImmer is the better option dev.to useImmer \u3092\u4f7f\u3063\u3066 useState \u3068 useReducer \u304b\u3089\u958b\u653e\u3055\u308c\u3066\u307f\u3088\u3046\u3063\u3066\u3044\u3046\u8a71\u3002\u4f7f\u2026","url":"https://kenfdev.hateblo.jp/entry/2023/03/08/111617","categories":["React","Testing","CSS","Authorization","Engineering"],"image_url":null,"type":"rich","height":"190","title":"\u30cf\u30a4\u30e9\u30a4\u30c8 2023-03-08","version":"1.0","provider_url":"https://hatena.blog","author_url":"https://blog.hatena.ne.jp/kenev/","width":"100%","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fkenfdev.hateblo.jp%2Fentry%2F2023%2F03%2F08%2F111617\" title=\"\u30cf\u30a4\u30e9\u30a4\u30c8 2023-03-08 - kenfdev\u2019s blog\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","published":"2023-03-08 11:16:17","provider_name":"Hatena Blog","blog_title":"kenfdev\u2019s blog","blog_url":"https://kenfdev.hateblo.jp/","author_name":"kenev"}