求助,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,其他文件可以继承使用

相关推荐
小奋斗几秒前
深入浅出:ES5/ES6+数组扁平化详解
javascript·面试
掘金安东尼9 分钟前
解读 hidden=until-found 属性
前端·javascript·面试
yangholmes888816 分钟前
如何为 Vue 组件提供 slots 静态类型检查
vue.js
1024小神18 分钟前
jsPDF 不同屏幕尺寸 生成的pdf不一致,怎么解决
前端·javascript
滕本尊18 分钟前
构建可扩展的 DSL 驱动前端框架:从 CRUD 到领域模型的跃迁
前端·全栈
借月19 分钟前
高德地图绘制工具全解析:线路、矩形、圆形、多边形绘制与编辑指南 🗺️✏️
前端·vue.js
li理19 分钟前
NavPathStack 是鸿蒙 Navigation 路由的核心控制器
前端
二闹22 分钟前
一招帮你记住上次读到哪儿了?
前端
li理26 分钟前
核心概念:Navigation路由生命周期是什么
前端
古夕28 分钟前
my-first-ai-web_问题记录02:Next.js 15 动态路由参数处理
前端·javascript·react.js