Redux Toolkit + React + Tailwind CSS 学习心得
创始人
2024-05-19 10:23:42

Redux Toolkit + React + Tailwind CSS 学习心得

预览地址:https://goldenaarcher.com/movie-app-home-only,只实现了一个简单的首页功能,API 用的是 the Movie Database,不想用 API 的也可以装一个 @faker-js/faker 用来随机生成伪数据,比如说用 Image 生成一个图片,Lorem 生成 title 和一段描述。

效果图:

正常模式 & 夜间模式:

在这里插入图片描述

在这里插入图片描述

搜索:

在这里插入图片描述

在这里插入图片描述

搜索没有调用 API,只是本地进行的 filter。

Redux 在完成了 Redux Toolkit 调用 API 的四种方式 和 React + TS + TDD 扫雷游戏学习心得 的学习后有点无惊无喜,不过这段代码还是可以加到自用的 boilerplate 里的:

import { useDispatch, useSelector } from 'react-redux';
import type { TypedUseSelectorHook } from 'react-redux';
import { AppDispatch, RootState } from '../store';export const useAppDispatch: () => AppDispatch = useDispatch;
export const useAppSelector: TypedUseSelectorHook = useSelector;

这个 useAppSelector 也解决了为什么我之前怎么 dispatch 状态都不太对的问题。

TS 方面,因为是个很小的练手项目(主要想看看 Tailwind 这块),所以有两个地方粗暴的使用了 any—— API 返回的数据,和 PayloadAction 中的值。前者对 API 返回的数据创建一个 interface 即可,后者则是还需要研究一下具体怎么实现。

Tailwind 这方面算是比较有趣的了,因为确实一行 CSS 没写,包括动画都是通过 Tailwind 已经实现的 CSS 类去实现的,如 MovieCard 的实现如下:

import React, { FC } from 'react';interface MovieCardProps {poster_path: string;overview: string;title: string;
}const MovieCard: FC = (props) => {const { poster_path, overview, title } = props;return (
'https://image.tmdb.org/t/p/original' + poster_path}alt={title}className="rounded-t-lg h-80 w-full object-cover"/>
{title}

{overview.slice(0, 300)}...

); };export default MovieCard;

其中鼠标悬浮的动画的实现由 hover:-translate-y-4 duration-200 hover:animate-puls 3 个类实现,可以感觉到预设的 CSS 类型非常的多,并且 tailwind 会做 tree shaking:

Tailwind automatically removes all unused CSS when building for production, which means your final CSS bundle is the smallest it could possibly be. In fact, most Tailwind projects ship less than 10kB of CSS to the client.

同时这也代表着学习曲线比较陡峭,我也挺好奇在实际项目中如果要实现重写 CSS 会不会有什么规范,毕竟如果重复定义 css 名称的话,大概率还是会导致重复 CSS 的出现。

相关内容

热门资讯

世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...