React-ts开发备忘——在tsx中使用js的模块引入方式

我们初次使用tsx开发react项目时,肯定会对他的模块引入方式觉得很奇怪吧

在tsx里面,我们需要这样引入React:

import * as React from 'react'

而 在js 中我们可以这样引入:

import React,{Component, useState} from 'react'

 

从上面可以看出,其实使用tsx的方式引入不是很方便,因为React使我们每个React组件都必须要引入的,因为jsx语法需要依赖React,而当我们要实现类式组件或者使用hook时,我们需要用到Component和useState等,如果使用tsx的方法,我们需要这样写:

import * as React from "react";

class Demo extends React.Component{
    // ....
}

function Demo1(){
    const [name,setName] = React.useState("kiner");
    // ....
}

这样是比较繁琐的,那么,有没有什么办法可以让我们在tsx中使用js的模块引入方式来引入模块呢 ?

答案是肯定的,我们只需要再tscofing.json的“compilerOptions”配置下面加入如下选项即可

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true
  }
}

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Vue3使用TypeScript,可以通过以下步骤实现: 1. 安装依赖 首先需要安装 `vue` 和 `typescript` 依赖,可以使用以下命令进行安装: ``` npm install vue typescript --save-dev ``` 2. 配置tsconfig.json 在项目根目录下创建 `tsconfig.json` 文件,并进行以下配置: ``` { "compilerOptions": { "target": "esnext", "module": "esnext", "jsx": "preserve", "strict": true, "moduleResolution": "node", "esModuleInterop": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, "resolveJsonModule": true, "noEmit": true, "types": [ "webpack-env", "jest" ], "lib": [ "esnext", "dom", "dom.iterable", "scripthost" ] }, "include": [ "src/**/*.ts", "src/**/*.tsx", "tests/**/*.ts", "tests/**/*.tsx" ], "exclude": [ "node_modules" ] } ``` 其,`jsx` 配置为 `preserve` 表示在编译过程保留 `tsx` 代码,不进行转换。 3. 创建组件 在创建组件时,可以使用 `.tsx` 后缀来定义组件,例如: ``` <template> <div>{{ message }}</div> </template> <script lang="tsx"> import { defineComponent } from 'vue' export default defineComponent({ data() { return { message: 'Hello, Vue3!' } } }) </script> ``` 在 `script` 标签使用 `lang="tsx"` 来指定使用 TypeScript。 4. 引入组件 在其他文件引入组件时,可以直接使用 `import` 语句,例如: ``` import HelloWorld from '@/components/HelloWorld.tsx' export default { components: { HelloWorld } } ``` 需要注意的是,在引入 `.tsx` 文件时,需要加上后缀名。 以上就是在Vue3使用TypeScript的简单流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星河阅卷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值