求助,vue单文件组件如何拆分?

vue单文件组件如何拆分?

普通单文件组件:log.vue

js 复制代码
<script setup lang="ts">
import { ref } from 'vue';
​
const index = ref<number>(1)
</script>
​
<template>
    <h1>{{ index }}</h1>
</template>
​
<style scoped>
h1 {
    color: red;
    font-size: 50px;
}
</style>

目前情况

组长设计目的:

1.为了抽离逻辑内容,避免一个文件代码太多

2.逻辑代码使用class,可以抽离通用逻辑和工具到common,其他文件可以继承使用

拆分成两个文件:

log.hook.ts

ts 复制代码
import { Ref, ref } from "vue";
export default class log {
    index: Ref<number>
  
    constructor() {
        this.index = ref(1)
    }
​
}

log.vue

ts 复制代码
<script setup lang="ts">
import logHook from "./log.hook";
​
const hook = new logHook()
</script>
​
<template>
    <h1>{{ hook.index }}</h1>
</template>
​
<style scoped>
h1 {
    color: red;
    font-size: 50px;
}
</style>

缺点:

1.this.的问题.在log.hook.ts内部,写逻辑,都要this.XXX.this.AAA,很繁琐

2.在log.vue中调用log.hook.ts方法时,有时候会报this的错误

需求,有什么更好的拆分方法吗?

1.为了抽离逻辑内容,避免一个文件代码太多

2.逻辑代码使用class,可以抽离通用逻辑和工具到common,其他文件可以继承使用

相关推荐
朕的剑还未配妥12 分钟前
移动端触摸事件与鼠标事件的触发机制详解
前端
墨鱼鱼16 分钟前
【征文计划】Rokid JSAR 实践指南:打造沉浸式 "声动空间盒" 交互体验
前端
渣哥16 分钟前
多环境配置利器:@Profile 在 Spring 项目中的实战价值
javascript·后端·面试
携欢19 分钟前
Portswigger靶场之Exploiting a mass assignment vulnerability通关秘籍
前端·安全
什么芋泥香蕉33027 分钟前
比 Manus 还好用?这款国产 AI,让 Python 小白也能玩转编程
前端·后端
为java加瓦28 分钟前
前端学AI:如何写好提示词(prompt)
前端·人工智能·prompt
U.2 SSD34 分钟前
Echart仪表盘示例
javascript·echarts
qq_18417767736 分钟前
前端自动部署项目到服务器
服务器·前端·javascript
非凡ghost37 分钟前
猫眼浏览器(Chrome内核增强版浏览器)官方便携版
前端·网络·chrome·windows·软件需求
Never_Satisfied43 分钟前
在JavaScript / HTML / Node.js中,post方式的Content-Type属性的text的三种编码
javascript·node.js·html