在vue项目中使用TS

在vue项目中使用TS

1. 将vue项目注入ts 引入和使用

webpack的打包配置:vue-cli webnpack 编译时

entry 入口 设置

entry: {
    app: './src/maikn.ts'
}

2. resolve: extensions 添加 ts 用于处理尝试的数据尾缀列表

  • 问: 如何在webpack新增处理类型文件: resolve配置项的extension里添加ts文件

TS 配置文件: typeScript.ts

vue/vuex + ts

1. 定义组件的方式上: 形式上:

import vue from 'vue'
const Compoinent = Vue.extend({
    // 类型
})

2. 注入实例: 使用官方工具:vue-class-component

  • 相当于给vue 添加了一个类装饰器的能力 从而实现实例 的注入
 import Component from 'vue-class-component'
 export default class myComponent extends Vue {
     message: string = 'hello'
     onClick(): void {
         console.log(this.message)
     }
 }

3. 独立模块的声明: 利用 ts的额外补充模块 declare实现 使之可以被独立引用

declare module '*.vue' {
    import Vue from 'vue'
    export default vue
}
declare module 'typings/vuePlugin.d.ts'{
    interface Vue {
        myProps: string
    }
}
// 实例中使用
let vm = new Vue()
console.log(vm.myProps)

4. props = 提供propType原地声明联合变量

import { propType } from 'vue'
interface customPayload {
    str: string,
    number: number,
    name: string
}

const  Component = Vue.extend({
    pros: {
        name: String,
        success: {
            type: String
        },
        payLoad: {
            type: Object as propType<customPayload>
        },
        callback: {
            type: Function as propType<() => void>
        }
    }
})

5. computed 和 methods

computed: {
    getMsg():string {
        return this.click() + '!'
    }
},
methods: {
    click(): string {
        return this.message + 'zhaowa'
    }
}

6. vuex的接入 - 声明使用

// vuex.d.ts声明模块 - ComponentCustomProperties
declare module '@vue/runtime-core' {
    interface State {
        count: number
    }
    interface ComponemtCustomProperties {
        $store: Store<State>
    }
}

7. api形式编码实现

// store.ts - 状态机侧
import { InjectionKey } from 'vue'
import {
    createStore,
    Store
} from 'vuex'
export interface State {
    count: number;
}
export const key: InjectionKey<Store<State>> = Symbol()
export const store = createStore<State>({
    state: {
        count: 0
    }
})
// main.ts - 入口侧代码
import { createApp } from 'vue'
import { store, key } form './store'
const app = createApp({
    // 参数
})
// 利用了provide。inject
app.use(store, key)  
//  => 传入injectionkey 
app.mount('#app')

//  消费方
import { useStore } from 'vuex'
import { key } from './store'
export default {
    const store = useStore(key)
    // store.state.count
}

8. vuex面向对象 (装饰器 结构更加统一) - 使用vuex-class 工具

import { State. Action, Getter } from "vuex-class"
export defaulty class App extends Vue {
    // 利用属性装饰器整合store的状态
    @store login: boolean
    // 利用事件装饰器整合store方法
    @Action setInit: ()=> void

    get isLogin: boolean
    mounted() {
        this.setInit()
        this.isLogin = this.login
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/581203.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp分包,以及通过uni-simple-router进行分包

先说一下uniapp的直接分包方式&#xff0c;很简单&#xff1a; 配置分包信息 打开manifest.json源码视图&#xff0c;添加 “optimization”:{“subPackages”:true} 开启分包优化 我们在根目录下创建一个pagesA文件夹&#xff0c;用来放置需要分包的页面 然后配置路由 运行到…

开源啦!一键部署免费使用!Kubernetes上直接运行大数据平台!

市场上首个K8s上的大数据平台&#xff0c;开源啦&#xff01; 智领云自主研发的首个 完全基于Kubernetes的容器化大数据平台 Kubernetes Data Platform (简称KDP) 开源啦&#x1f680;&#x1f680; 开发者只要准备好命令行工具&#xff0c;一键部署 Hadoop&#xff0c;Hi…

【论文笔记】Language Models are Few-Shot Learners B部分

Language Models are Few-Shot Learners B 部分 回顾一下第一代 GPT-1 &#xff1a; 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式&#xff1b;模型架构是基于 Transformer 的叠加解码器&#xff08;掩码自注意力机制、残差、Layernorm&#…

【win10相关】更新后出现未连接到互联网的问题及解决

问题背景 在win10更新完系统之后&#xff0c;第二天电脑开机后&#xff0c;发现无法上网&#xff0c;尝试打开百度&#xff0c;但是出现以下图片&#xff1a; 经过检查&#xff0c;发现手机是可以上网的&#xff0c;说明网络本身并没有问题&#xff0c;对防火墙进行了一些设置…

采用前后端分离Vue,Ant-Design技术开发的(手麻系统成品源码)适用于三甲医院

开发环境 技术架构&#xff1a;前后端分离 开发语言&#xff1a;C#.net6.0 开发工具&#xff1a;vs2022,vscode 前端框架&#xff1a;Vue,Ant-Design 后端框架&#xff1a;百小僧开源框架 数 据 库&#xff1a;sqlserver2019 系统特性 麻zui、护理、PACU等围术期业务全覆…

【机器学习】集成学习---Bagging之随机森林(RF)

【机器学习】集成学习---Bagging之随机森林&#xff08;RF&#xff09; 一、引言1. 简要介绍集成学习的概念及其在机器学习领域的重要性。2. 引出随机森林作为Bagging算法的一个典型应用。 二、随机森林原理1. Bagging算法的基本思想2. 随机森林的构造3. 随机森林的工作机制 三…

3. uniapp开发工具的一些事

前言 新的一天&#xff0c;又要开始卷起来了&#xff0c;开发程序开发当前离不开开发工具&#xff0c;一个好的开发工具办事起来那必然是事倍功半的...本文主要分享了关于uniapp里开发工具的一些事~ 概述 阅读时间&#xff1a;约5&#xff5e;7分钟&#xff1b; 本文重点&am…

Web程序设计-实验04 JavaScript对象

题目 【实验主题】 个人所得税计算 【实验任务】 1、根据【任务提示】和【参考资源】材料&#xff0c;自学2012版月工资、年终奖个人所得税计算规则。 2、新建 .js文件&#xff0c;以JSON格式定义个人所得税对象。 其中属性涉及三个层次&#xff1a; 1&#xff09;第一层…

03-MVC执行流程-参数解析与Model

重要组件 准备Model&#xff0c;Controller Configuration public class WebConfig {ControllerAdvicestatic class MyControllerAdvice {ModelAttribute("b")public String bar() {return "bar";}}Controllerstatic class Controller1 {ResponseStatus(H…

CUDA的基础知识

文章目录 数据精度CUDA概念线程&线程块&线程网络&计算核心GPU规格参数内存 GPU并行方式数据并行流水并行张量并行混合专家系统 数据精度 FP32 是单精度浮点数&#xff0c;用8bit 表示指数&#xff0c;23bit 表示小数&#xff1b;FP16 是半精度浮点数&#xff0c;用…

SpringBoot常用注解与注意事项

Spring Boot 是一个用于快速开发、运行和管理 Spring 应用程序的框架。它大量使用了注解&#xff08;Annotations&#xff09;来简化配置和开发流程。 以下是一些 Spring Boot 中常用的注解及其注意事项&#xff1a; 1.常用注解 SpringBootApplication 这是一个组合注解&#…

OpenHarmony 项目实战:智能体重秤

一、简介 本 demo 基于 OpenHarmony3.1Beta 版本开发&#xff0c;该样例能够接入数字管家应用&#xff0c;通过数字管家应用监测体重秤上报数据&#xff0c;获得当前测量到的体重&#xff0c;身高&#xff0c;并在应用端形成一段时间内记录的体重值&#xff0c;以折线图的形式…

vivado Aurora 8B/10B IP核(4)-数据流接口(Streaming Interface)

Streaming 接口 Transmitting and Receiving Data&#xff08;发送和接收数据&#xff09; 流式接口允许将Aurora 8B/10B通道用作管道。 初始化后&#xff0c;通道始终可用于写入&#xff0c;除非发送时 钟补偿序列。 核心数据传输符合AXI4-Stream协议。当s_axi_tx_tvalid被取…

OpenHarmony 实战开发——分布式购物车案例展示~

简介 分布式购物车demo 模拟的是我们购物时参加满减活动&#xff0c;进行拼单的场景&#xff1b;实现两人拼单时&#xff0c;其他一人添加商品到购物车&#xff0c;另外一人购物车列表能同步更新&#xff0c;且在购物车列表页面结算时&#xff0c;某一人结算对方也能实时知道结…

基于单片机的多功能电子万年历系统

摘要:该题目要求学生综合运用单片机原理、低频电子线路、数字电路与逻辑设计等相关知识,设计完成多功能电子万年历系统。通过完成设计任务,使学生掌握单片机设计开发的基本流程,增强学生动手实践能力,培养学生分析和解决实际问题的能力,为后续课程的学习和工作打下良好基础。 关…

特征的前期融合与后期融合在召回、粗排、精排应用

前期融合&#xff1a;先对所有特征做concat&#xff0c;再输入DNN&#xff0c;一般常见于精排模型 特点&#xff1a;线上推理代价大&#xff0c;若有n个候选item需要做n次模型计算 后期融合&#xff1a;把用户和物品特征分别输入不同的神经网络&#xff0c;不对用户和物品做融…

基于Springboot的玩具租赁系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的玩具租赁系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

多用户商城系统哪个好,2024多用户商城系统这样选

在2024年选择适合的多用户商城系统是一项至关重要的决策&#xff0c;因为一个优秀的商城系统不仅可以提升用户体验&#xff0c;还能够帮助企业实现业务目标并取得长期成功。然而&#xff0c;在众多的选择中挑选出最适合的一个并不容易&#xff0c;需要综合考虑各种因素&#xf…

static page 项目

static page 项目 作者&#xff1a;不染心 博客地址&#xff1a;https://blog.csdn.net/qq_38234785 源码地址&#xff1a;https://mbd.pub/o/bread/ZpWVlJps 未经允许&#xff0c;不得转载 文档版本v1&#xff0c;还没写完持续更新 一、引言 1. 软件概述和背景 本软件是…

Python-软件设计-“帮助”小孩子自我行为(电脑端看短视频)约束

目录 前言一、方式一&#xff1a;网站访问拦截二、方式二&#xff1a;SW(电脑软件简称)启动拦截三、使用代码的方式将方式一和方式二结合成自动化程序部署四、其他拓展知识1.程序打包2、开机自启文件夹 五、报错的解决方式1、打包成软件后&#xff0c;运行那个软件时不执行或报…
最新文章