请允许我为您详细讲解“vue3项目中引入ts的详细图文教程”的完整攻略。
1. 创建Vue3项目
首先,我们需要使用Vue CLI创建一个Vue3项目。在终端输入以下命令:
vue create vue3-ts-demo
在创建项目时,我们需要选择手动模式,以便为项目启用TypeScript选项。选择手动
模式后,我们需要勾选typescript
选项,请确保选择了以下Option:
Vue CLI v4.5.13
? Please pick a preset: Manually select features
? Check the features needed for your project: Choose Vue version, Babel, TypeScript, Linter
? Choose a version of Vue.js that you want to start the project with 3.x (Preview)
? Use class-style component syntax? No
? Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)? Yes
? Use history mode for router? (Requires proper server setup for index fallback in production) No
? Pick a linter / formatter config: ESLint with error prevention only
? Pick additional lint features: Lint on save, Lint and fix on commit
? Where do you prefer placing config for Babel, ESLint, etc.? In dedicated config files
2. 安装TypeScript
接下来,我们需要安装TypeScript和其他必要的TypeScript依赖项。在终端输入以下命令:
npm install typescript ts-loader @vue/compiler-sfc --save-dev
3. 项目配置
我们需要配置项目来使用TypeScript。我们需要在tsconfig.json
文件中配置TypeScript编译器。创建以下配置文件:
tsconfig.json
{
"compilerOptions": {
"target": "esnext",
"module": "esnext",
"moduleResolution": "node",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"jsx": "preserve",
"allowJs": true,
"sourceMap": true,
"baseUrl": ".",
"types": [
"webpack-env",
"jest",
"vuetify"
],
"paths": {
"@/*": [
"src/*"
]
},
"lib": [
"esnext",
"dom",
"dom.iterable",
"scripthost"
]
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"tests/**/*.ts"
],
"exclude": [
"node_modules"
]
}
可以根据需求修改其中的配置选项。
在项目的根目录下,创建一个vue.config.js
文件来配置webpack。我们需要在其中添加以下代码:
module.exports = {
pages: {
index: {
entry: 'src/main.ts',
title: 'Vue3 with TypeScript'
}
},
configureWebpack: {
resolve: {
extensions: ['.ts', '.tsx', '.js', '.json']
}
},
chainWebpack: config => {
config.module
.rule('ts')
.use('ts-loader')
.loader('ts-loader')
.tap(options => {
options.appendTsSuffixTo = [/\.vue$/]
return options
})
}
}
4. 示例说明
以下是两个示例,用于说明如何在Vue3项目中使用TypeScript。
示例1: 定义props
- 在
App.vue
中定义一个props,类型为string。
<template>
<div>
<p>{{ message }}<p>
</div>
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue'
export default defineComponent({
name: 'App',
props: {
message: {
type: String as PropType<string>,
required: true
}
}
})
</script>
- 在
main.ts
中,创建一个Vue实例,并将message传递给App组件。
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App, {
message: 'Hello World'
})
app.mount('#app')
示例2: 创建组件
- 创建一个新组件,在
components
目录下,如下:
<template>
<div>
{{name}}
</div>
</template>
<script lang="ts">
import { defineComponent, PropType } from 'vue'
export default defineComponent({
name: 'HelloWorld',
props: {
name: {
type: String as PropType<string>,
required: true
}
}
})
</script>
- 在
App.vue
中引入HelloWorld
组件:
<template>
<div>
<p>{{ message }}<p>
<HelloWorld :name="name" />
</div>
</template>
<script lang="ts">
import HelloWorld from './components/HelloWorld.vue'
import { defineComponent } from 'vue'
export default defineComponent({
name: 'App',
components: {
HelloWorld
},
data() {
return {
name: 'Vue3 with TypeScript'
}
}
})
</script>
以上两个示例分别说明了在Vue3项目中,如何定义props和创建组件,并在其中使用TypeScript。通过以上步骤和示例,您应该可以成功在Vue3项目中启用TypeScript了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue3项目中引入ts的详细图文教程 - Python技术站