react native+typescript创建移动端项目-(慕课网喜马拉雅项目笔记)-(一,项目的初始化配置)

一,新建项目

npx react-native init ximalaya --template react-native-template-typescript

二,多环境配置

在android和ios的开发中,无法使用proscess.env.NODE_ENV的方式区分环境,需要使用一个包来实现:
react-native-config
官网地址:
https://js.coach/package/react-native-config

在这里插入图片描述
注意,修改了buid.gradle文件后需要重新运行项目才能生效。
在这里插入图片描述

三,绝对路径配置

主要是为了解决文件层次过深,使用相对路径一级一级寻找太过麻烦的问题。
使用的包:
babel-plugin-module-resolver
官网:https://www.npmjs.com/package/babel-plugin-module-resolver
babel.config.js文件:

module.exports = {
  presets: ['module:metro-react-native-babel-preset'],
  plugins: [
    [
      'module-resolver', //对这个插件的配置
      {
        root: ['./src'], //从这个目录开始配置
        alias: {
          //使用对应的标识符来映射对应的路径
          '@/utils': './src/utils',
          '@/pages': './src/pages',
          '@/navigator': './src/navigator',
          '@/models': './src/models',
          '@/config': './src/config',
          '@/components': './src/components',
          '@/assets': './src/assets',
        },
      },
    ],
  ],
};

在这里插入图片描述
这样实际使用的时候:就可以直接使用自己配置好的映射标识符路径来完成了:
在这里插入图片描述
但是注意到页面虽然显示正确,说明按照这个路径已经正确地引入模块了,但是编辑器 依旧报错,这是因为ts还不识别这个模块路径的写法。
需要在tsconfig.json中进行配置。
在这里插入图片描述

    "baseUrl": "./src",                       /* Base directory to resolve non-absolute module names. */
    "paths": {
      "@/assets/*":["assets/*"],   //表示使用@/assets/来取代./src/assets/
      "@/components/*":["components/*"],
      "@/config/*":["config/*"],
      "@/navigator/*":["navigator/*"],
      "@/models/*":["models/*"],
      "@/pages/*":["pages/*"],
      "@/utils/*":["utils/*"],
    },    

这时候,按住ctrl+鼠标左键点击,甚至可以直接跳转到该文件:
在这里插入图片描述

四,接口文档

1,原因分析

平时开发过程中,因为是前后端分离的,有时前端自己mock数据写完之后,发现后端给的接口,不一致,就需要额外的工作量来修改。

2,下载安装mongodb,node我已经安装好了,就不安装了

官网地址:https://www.mongodb.com/try/download/community

3,接下来进行Yapi的内网部署

官网:https://hellosean1025.github.io/yapi/devops/index.html

npm install -g yapi-cli --registry https://registry.npm.taobao.org

在这里插入图片描述
在这里插入图片描述

 初始化管理员账号成功,账号名:"admin@admin.com",密码:"ymfe.org"

部署成功,请切换到部署目录,输入: "node vendors/server/app.js" 指令启动服务器, 然后在浏览器打开 http://127.0.0.1:3001  访问

登陆账号和密码就是上面生成的,注册登陆:
在这里插入图片描述

4,yapi的基本使用

在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
React Native 中使用 TypeScript 和 Axios 实现查询功能的步如下: 1. 安装所需的依赖: ``` npm install axios ``` 2. 创建一个查询组件(SearchComponent.tsx)。 ```tsx import React, { useState } from 'react'; import { Button, TextInput, View } from 'react-native'; import axios from 'axios'; interface SearchComponentProps { onSearch: (searchTerm: string) => void; } const SearchComponent: React.FC<SearchComponentProps> = ({ onSearch }) => { const [searchTerm, setSearchTerm] = useState(''); const handleSearch = async () => { try { const response = await axios.get(`https://api.example.com/search?term=${searchTerm}`); // 在这里处理查询结果 console.log(response.data); onSearch(searchTerm); } catch (error) { // 处理错误情况 console.error(error); } }; return ( <View> <TextInput value={searchTerm} onChangeText={(text) => setSearchTerm(text)} /> <Button title="Search" onPress={handleSearch} /> </View> ); }; export default SearchComponent; ``` 3. 在父组件中使用查询组件并处理查询逻辑。 ```tsx import React from 'react'; import { View, Text } from 'react-native'; import SearchComponent from './SearchComponent'; const ParentComponent: React.FC = () => { const handleSearch = (searchTerm: string) => { // 在这里处理查询逻辑,可以更新状态或进行其他操作 console.log('查询关键词:', searchTerm); }; return ( <View> <Text>查询功能示例</Text> <SearchComponent onSearch={handleSearch} /> </View> ); }; export default ParentComponent; ``` 4. 在应用的入口文件中渲染父组件。 ```tsx import React from 'react'; import { AppRegistry } from 'react-native'; import ParentComponent from './ParentComponent'; const App: React.FC = () => { return <ParentComponent />; }; AppRegistry.registerComponent('MyApp', () => App); ``` 以上是一个简单的查询功能的实现示例,你可以根据实际需求进行相应的修改和扩展。记得根据你的项目需要进行网络请求的配置,例如设置请求头、身份验证等。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值