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

相关推荐
海天胜景2 分钟前
vue3 el-table 右击
javascript·vue.js·elementui
Mercury-circle4 分钟前
JavaScript基础知识合集笔记1——数据类型
开发语言·javascript·笔记
一天睡25小时14 分钟前
前端性能优化面试回答技巧(一)
前端·面试
樊小肆15 分钟前
Vue3 在线 PDF 编辑 2.0 缩放拖拽、渲染优化功能解析
前端·vue.js·开源
程序员韩立15 分钟前
精通 React Hooks:从核心技巧到自定义实践
前端
WEI_Gaot16 分钟前
React Hooks useRef useId
前端·react.js
一天睡25小时17 分钟前
视频HLS分片与关键帧优化深度解析
前端·javascript
孤鸿玉18 分钟前
[Flutter小试牛刀] 低配版signals,添加多层监听链
android·前端·响应式设计
漫漫漫丶18 分钟前
基于Node+HeadlessBrowser的浏览器自动化方案
前端
WEI_Gaot19 分钟前
React Hooks useContext useReducer
前端·react.js