news 2026/7/7 16:57:18

vue3的ts页面初始化模板代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue3的ts页面初始化模板代码

vue3的ts页面初始化模板代码

在 Vue 3 中使用 TypeScript 开发时,主要有两种编写页面的方式。以下是两种风格的模板代码,你可以根据项目需求选择使用。

📝 两种页面初始化模板

1. 标准 Composition API 写法

这种写法使用defineComponent和明确的setup函数,结构清晰,适合初学者和需要明确控制暴露内容的情况。

<template><divclass="page-container"><h1>{{pageTitle}}</h1><p>计数器:{{count}}</p><button @click="increment">增加</button><button @click="reset">重置</button></div></template><script lang="ts">import{defineComponent,ref}from'vue';exportdefaultdefineComponent({name:'MyPage',setup(){// 响应式数据constpageTitle=ref<string>('Vue 3 + TypeScript 页面');constcount=ref<number>(0);// 方法constincrement=():void=>{count.value++;};constreset=():void=>{count.value=0;};// 生命周期钩子constinitialize=():void=>{console.log('页面初始化完成');};// 返回模板中需要使用的数据和方法return{pageTitle,count,increment,reset,initialize};},mounted(){this.initialize();}});</script><style scoped>.page-container{padding:20px;max-width:800px;margin:0auto;}</style>

2.<script setup>语法糖写法(推荐)

这种写法更简洁,不需要显式返回数据,适合 Vue 3.2+ 版本,是目前的主流写法。

<template><divclass="page-container"><h1>{{pageTitle}}</h1><p>计数器:{{count}}</p><p>双倍计数:{{doubleCount}}</p><button @click="increment">增加</button><button @click="reset">重置</button></div></template><script setup lang="ts">import{ref,computed,onMounted}from'vue';// 响应式数据constpageTitle=ref<string>('Vue 3 + TypeScript 页面');constcount=ref<number>(0);// 计算属性constdoubleCount=computed(():number=>count.value*2);// 方法constincrement=():void=>{count.value++;};constreset=():void=>{count.value=0;};// 生命周期钩子onMounted(():void=>{console.log('页面初始化完成');initialize();});constinitialize=():void=>{// 初始化逻辑console.log('初始化页面数据');};</script><style scoped>.page-container{padding:20px;max-width:800px;margin:0auto;}button{margin:05px;padding:8px16px;cursor:pointer;}</style>

🔧 高级功能扩展模板

如果需要更复杂的功能,可以参考以下包含路由、状态管理和API调用的完整模板:

<template><divclass="advanced-page"><header><h1>{{pageTitle}}</h1><nav><router-link to="/home">首页</router-link><router-link to="/about">关于</router-link></nav></header><main><div v-if="loading"class="loading">加载中...</div><div v-else><slot name="content"><p>用户数据:{{userData}}</p><button @click="fetchData":disabled="loading">{{loading?'加载中...':'获取数据'}}</button></slot></div></main></div></template><script setup lang="ts">import{ref,computed,onMounted}from'vue';import{useRouter}from'vue-router';// 类型定义interfaceUser{id:number;name:string;email:string;}interfacePageProps{title?:string;}// Props 定义constprops=withDefaults(defineProps<PageProps>(),{title:'默认页面标题'});// 响应式数据constpageTitle=ref<string>(props.title);constloading=ref<boolean>(false);constuserData=ref<User|null>(null);// 计算属性consthasUserData=computed(():boolean=>userData.value!==null);// 方法constfetchData=async():Promise<void>=>{loading.value=true;try{// 模拟 API 调用constresponse=awaitfetch('/api/user');userData.value=awaitresponse.json();}catch(error){console.error('获取数据失败:',error);}finally{loading.value=false;}};// 生命周期onMounted(async():Promise<void>=>{awaitfetchData();});// 暴露给父组件的方法defineExpose({fetchData,resetData:()=>{userData.value=null;}});</script><style scoped>.advanced-page{min-height:100vh;background-color:#f5f5f5;}header{background:#fff;padding:1rem;box-shadow:02px4pxrgba(0,0,0,0.1);}.loading{text-align:center;padding:2rem;color:#666;}button:disabled{opacity:0.6;cursor:not-allowed;}</style>

💡 关键要点说明

  1. 类型安全:TypeScript 提供了完整的类型支持,减少运行时错误 。
  2. 响应式系统:使用refreactive创建响应式数据 。
  3. 组合式函数:可以将逻辑抽离为可复用的组合式函数 。
  4. 生命周期:使用onMountedonUpdated等组合式 API 替代选项式 API 。

🎯 使用建议

  • 简单页面:推荐使用<script setup>语法糖,代码更简洁。
  • 复杂组件:如果需要明确的控制和组织结构,可以使用标准写法。
  • 团队项目:统一代码风格,制定 TypeScript 规范。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 13:45:01

uniapp vue3的ts页面初始化模板代码

uniapp vue3的ts页面初始化模板代码 在 UniApp 中使用 Vue 3 和 TypeScript 可以大大提升开发效率和代码质量。下面是一个完整的页面初始化模板&#xff0c;以及一些关键的最佳实践&#xff0c;帮助你快速上手。 下面是一个基础的页面模板示例&#xff0c;您可以直接复制使用&a…

作者头像 李华
网站建设 2026/7/7 17:46:35

图解说明ESP32开发板供电电路在环境搭建中的作用

稳定供电&#xff0c;才是ESP32开发的第一步&#xff1a;从“能亮灯”到“不重启”的硬核实战解析你有没有遇到过这样的情况&#xff1f;Flash烧录到98%突然失败&#xff0c;串口打印一堆乱码&#xff1b;Wi-Fi一连上就自动断开&#xff0c;反复重连像在抽风&#xff1b;ADC读出…

作者头像 李华
网站建设 2026/7/7 14:34:32

高效配置VSCode:AI开发全攻略详细步骤

一、VSCode 基础配置 下载安装 VSCode前往VSCode 官方网站&#xff0c;根据自己的操作系统&#xff08;Windows/macOS/Linux&#xff09;下载对应安装包&#xff0c;完成安装。基础设置调整 打开 VSCode 后&#xff0c;按下Ctrl,&#xff08;Windows/Linux&#xff09;或者Cmd…

作者头像 李华
网站建设 2026/7/7 10:16:34

UUID vs 自增ID做主键,哪个好?

UUID vs 自增ID 一、核心差异概览维度自增IDUUID存储空间4-8字节&#xff08;int/bigint&#xff09;16字节&#xff08;128位&#xff09;生成方式数据库自动递增应用层生成&#xff08;随机/有序&#xff09;顺序性严格递增&#xff0c;天然有序通常无序&#xff08;有序UUID…

作者头像 李华
网站建设 2026/7/7 8:26:05

SQL INSERT INTO SELECT 语句

SQL INSERT INTO SELECT 语句通过 SQL&#xff0c;您可以从一个表复制信息到另一个表。INSERT INTO SELECT 语句从一个表复制数据&#xff0c;然后把数据插入到一个已存在的表中。SQL INSERT INTO SELECT 语句INSERT INTO SELECT 语句从一个表复制数据&#xff0c;然后把数据插…

作者头像 李华
网站建设 2026/7/7 17:44:43

SQL LIKE 操作符

SQL LIKE 操作符LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。LIKE 操作符是 SQL 中用于在 WHERE 子句中进行模糊查询的关键字&#xff0c;它允许我们根据模式匹配来选择数据&#xff0c;通常与 % 和 _ 通配符一起使用。SQL LIKE 语法SELECT column1, column2, ... FROM…

作者头像 李华