• vue3项目集成TypeScript


    首先 当然是你需要有一个vue3的项目

    然后在项目终端输入 vue add typescript
    在这里插入图片描述‘然后这里一定要输y按回车啊 如果你输n 直接就退出了

    然后就会出现一些列选项 建议大家 第一个 输入n回车
    其他都输入y 回车
    在这里插入图片描述
    然后我们ts就进来了
    然后运行项目 如果跑的起来就说明没问题了

    在这里插入图片描述
    然后 我们会发现 他对我们组件内容都做了一些修改
    然后我们可以看到 文件的变化
    特别是 main.js 变成了 main.ts
    在这里插入图片描述
    我们打开app.vue 会发现两点变化
    在这里插入图片描述
    第一 我们的script上有一个 lang 值等于字符串 ts
    我们要使用ts就要这么声明
    然后组件导出要套个 defineComponent
    defineComponent在于将组件暴露出去 暴露之前就会对语法进行检查

    然后我们对app.vue做一些修改

    <template>
      <div>
        <button @click = "setTitle('修改值')">修改titlebutton>
        {{ title }}
      div>
    template>
    
    <script lang="ts">
    import { defineComponent } from 'vue';
    let title:String="我是一个ts组件";
    export default defineComponent({
      name: 'App',
      data() {
        return {
            title
        }
      },
      methods:{
        setTitle(value:String):void{
            this.title = value;
        },
      },
    });
    script>
    
    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    style>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    这时我们就使用了ts语法
    做了 默认值 和 类型的限制
    然后我们有声明了一个setTitle方法 返回值类型填void 表示没有返回值
    接受一个字符串类型的参数
    方法逻辑修改了 title的值
    代码效果如下
    在这里插入图片描述
    当我点击按钮
    在这里插入图片描述
    也是没有任何问题

    我们还可以限制data中的数据
    参考代码如下

    <template>
      <div>
        {{ name }}
      div>
    template>
    
    <script lang="ts">
    import { defineComponent } from 'vue';
    interface standard{
        name:String,
        age:number,
        mobilePhone?:String
    }
    let newData:standard = {
        name:'张三',
        age:22,
    }
    export default defineComponent({
      name: 'App',
      data() {
        return newData
      },
      methods:{
       
      },
    });
    script>
    
    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    这里我们用ts语法 定义了一个接口 叫standard 他规定要有三个字段 name 类型必须是 字符串 age 类型必须是数字

    mobilePhone类型必须是字符串 但可以没有 后面加个问号 就表示 可有 可无

    然后我们定义newData对象 实现了standard 接口 并按接口约定 定义了字段

    然后data直接就返回了newData 此时 data中定义的数据 就是 newData的数据
    在这里插入图片描述
    运行的也没有任何问题

    ts对象实现接口有两种写法 一种是我们上面写的、

    let newData:standard = {
        name:'张三',
        age:22,
    }
    
    • 1
    • 2
    • 3
    • 4

    也可以是

    let newData = {
        name:'张三',
        age:22,
    } as standard
    
    • 1
    • 2
    • 3
    • 4

    vue的计算属性中也可以这样使用

    computed:{
       min():number{
        return 13
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这里我们定义了computed vue计算属性 然后定义了一个min方法 要求必须返回一个number类型的值
    我们返回了13

    然后我们用插值表达式输出这个min {{ min }}
    在这里插入图片描述
    这些就是比较基础的vue继承TS 和一些基础的使用方法啦

  • 相关阅读:
    JavaMail 邮件发送,有意思的附件名乱码 → 客户端正常,web端乱码
    用RocketMQ这么久,才知道消息可以这样玩
    Hive的基本SQL操作(DDL篇)
    Http改为Https后该如何测试
    人脸识别技术细节总结
    经典Mysql入门必刷50题及全网最新最详细的笔记记录
    如何有效防止服务器被攻击?
    代码随想录训练营二刷第四十七天 | 70. 爬楼梯 (进阶) 322. 零钱兑换 279.完全平方数
    827万!朔黄铁路基于5G边缘计算的智慧牵引变电所研究项目
    程序启停分析与进程常用API的使用
  • 原文地址:https://blog.csdn.net/weixin_45966674/article/details/126573176