react+ts

本文详细介绍了如何在React应用中使用Redux-alita进行状态管理,包括安装步骤、组件内Hook的运用,以及配合react-router-dom的路由配置。还涵盖了TS类型和关键概念如useState、useEffect的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • redux-alita 的使用
    安装redux-alita: yarn add redux-alita 或者 npm i redux-alita

    import { AlitaProvider } from 'redux-alita';
    	<AlitaProvider>
    		 <App />
    	</AlitaProvider>
    

    组件中使用

    import { useAlita } from 'redux-alita';
    function App() {
        let [count = 0, setAlita] = useAlita('count', { light: true });
        return (
            <div>
                <a onClick={() => setAlita({ stateName: 'count', data: ++count })}>+</a>
                 <a onClick={() => setAlita({ stateName: 'count', data: --count })}></a>
                 <div>count:{count}</div>
            </div>
        )
    }
    
  • HOOK—useState、useEffect的使用
    useState 类似定义一个初始值
    const [collapsed, setCollapsed] = useState<boolean>(false);
    useEffect会在每次渲染后调用,包括第一次渲染的时候;我们可以给useEffect传第二个参数。用第二个参数来告诉 react只有当这个参数的值发生改变时才执行我们传的副作用函数;

    useEffect(() => {
        let user = umbrella.getLocalStorage('user');
        user && setAlita('auth', user);
        setAlita('responsive', { isMobile: checkIsMobile() });
        handleResize((isMobile: boolean) => setAlita('responsive', { isMobile }));
        openFNotification();
        fetchSmenu((smenus: any[]) => setAlita('smenus', smenus));
    }, [setAlita]);
    
  • react-router-dom路由
    react基本路由配置

    import React from 'react';
    import { HashRouter as Router, Route, Switch, Redirect } from 'react-router-dom';
    import NotFound from './components/pages/NotFound';
    import Login from './components/pages/Login';
    import App from './App';
    
    export default () => (
        <Router>
            <Switch>
                <Route exact path="/" render={() => <Redirect to="/app/dashboard/index" push />} />
                <Route path="/app" component={App} />
                <Route path="/404" component={NotFound} />
                <Route path="/login" component={Login} />
                <Route component={NotFound} />
            </Switch>
        </Router>
    );
    
  • TS 类型
    布尔类型
    let status: boolean = true
    数字类型
    let num: number = 1
    字符串
    let name: string = 'u'
    数组
    let list: number[] = [1, 2, 3]
    let list: Array<number> = [1, 2, 3]
    Any (在编程阶段还不清楚类型的变量指定一个类型)
    let notSure: any = 4 ; notSure = "maybe a string instead";
    Void (void类型像是与any类型相反,它表示没有任何类型)

    function getPermits(): void => {
        alert("This is Permits")
    };
    

    Null 和 Undefined

    let u: undefined = undefined;
    let n: null = null;
    

    Never (never类型表示的是那些永不存在的值的类型)

    function error(message: string): never {
        throw new Error(message);
    }
    

    类型断言 (类型断言有两种形式 as语法 尖括号语法)
    this[action](targetKey as string);
    const [collapsed, setCollapsed] = useState<boolean>(false);

    泛型

    function getGeneric<T>(value:T):T{
    	return value
    } 
    getGeneric<string>('getGeneric')
    getGeneric<number>(1)
    
React+TypeScript脚手架是一种用于创建React项目的工具。通过使用create-react-app脚手架,可以快速搭建一个React项目,并且使用TypeScript作为项目的开发语言。\[1\] 使用步骤如下: 1. 首先,需要安装create-react-app工具。可以通过以下命令进行安装: ``` npm i create-react-app -g ``` 或者 ``` yarn add create-react-app -g ``` 2. 然后,使用create-react-app命令来创建一个React+TypeScript项目。命令的格式如下: ``` npx create-react-app <项目名> --template typescript ``` 注意,项目名不要使用中文,否则会报错。\[2\] 3. 创建完成后,可以在VSCode中打开项目。可以看到项目中已经生成了React项目的雏形,组件的后缀为.tsx,这说明成功创建了React+TypeScript项目。\[1\] 4. 在项目中,可以根据需要进行配置。通常,可以在App组件中进行配置,例如引入所需的组件、样式和路由等。\[3\] 希望以上信息对你有帮助!如果还有其他问题,请随时提问。 #### 引用[.reference_title] - *1* *3* [react+ts搭建](https://blog.youkuaiyun.com/m0_56540662/article/details/124267829)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [React+ts搭建脚手架](https://blog.youkuaiyun.com/weixin_51612593/article/details/120249135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值