首页 > 其他分享 >Vue3 setup的业务逻辑分离功能拆分

Vue3 setup的业务逻辑分离功能拆分

时间:2023-08-15 10:12:48浏览次数:48  
标签:... useConfig const setup toRefs reactive 拆分 Vue3 import

在Vue3开发中,我们可能遇到一个页面或者组件业务逻辑很复杂,代码量达到千行,不利于阅读和维护,因此需要将业务逻辑进行分离

首页主界面 index.vue

// index.vue
<script>
    import {reactive, toRefs} from 'vue'
    import useOperate from './useOperate.js'
    import useConfig from './useConfig.js'

    export default {
        name: '',
        setup(props, {emits, slot, attr}){
           const { title, getList } = useOperate();
           const { onEditHandler, onDeleteHandler } = useConfig();
            
           const state = reactive({
               myTitle: title
           })
           
           return {
               ...toRefs(state),
               onEditHandler,
               onDeleteHandler
           }
        }
    }
</script>

功能拆分1:useOperate.js

import { reactive, toRefs } from 'vue'

export default function useOperate(){
    const state = reactive({
        fromData: {
            title: ""
        }
    })
    
    // 函数
    const getList = () => {
        ...
    }
    
    return {
        ...toRefs(state),
        getList
    }
}

功能拆分2: useConfig.js

import {reactive, toRefs} from 'vue'

export default function useConfig(){
    const onEditHandler = () => {...}
    const onDeleteHandler = () => {...}
    
    return {
        onEditHandler,
        onDeleteHandler
    }
}

 

标签:...,useConfig,const,setup,toRefs,reactive,拆分,Vue3,import
From: https://www.cnblogs.com/cp-cookie/p/17630578.html

相关文章

  • vue3 使用 vue-i18n 配置多语言环境
    1.插件地址:VueI18n官方文档GitHub地址2.安装:在Vue之后引入vue-i18n,它会自动安装:<scriptsrc="https://unpkg.com/vue/dist/vue.js"></script><scriptsrc="https://unpkg.com/vue-i18n/dist/vue-i18n.js"></script>NPM:npminstallv......
  • Vue3 中的v-model实现父子组件数据同步通信
    v-model在vue2中也就是双向绑定作用,但是在vue3中除了实现双向绑定外,还可以进行组件的通信父子组件的数据同步,接下来看看例子:<template><h1>{{num}}</h1><child-eventv-model="num"></child-event></template><scriptlang="ts"setup......
  • [完结8章]程序员的 AI 启蒙课,ChatGPT 辅助开发 Vue3 项目
    点击下载:程序员的AI启蒙课:ChatGPT让你1人顶3人提取码:8zwd Vue是一款用于构建用户界面的JavaScript框,它基于标准的HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,用以帮助开发者高效地开发用户界面。目前,Vue3.0正式版也发布了两年的时间,越......
  • vue3+typescript中的props
     以上是子组件 以上是父组件<scriptsetuplangs="ts">letprops=defineProps(['info','money'])//父子组件的通信需要用到defineProps方法去接受父组件想要传递的数据console.info(props)</script>需要注意的就是:props可以实现父子组件的通信,但是props的......
  • vue2和vue3中插槽写法区别
    一、slot是什么在HTML中slot元素,作为WebComponents技术套件的一部分,是Web组件内的一个占位符。该占位符可以在后期使用自己的标记语言填充。(我们可以理解为solt在组件模板中占好了位置,当使用该组件标签时候,组件标签里面的内容就会自动填坑(替换组件模板中slot位置),作为承......
  • LeetCode 139.单词拆分
    1.题目:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例1:输入:s="leetcode",wordDict=["leet","code"]输出:true解释:返回tr......
  • Spring Boot + Vue3前后端分离实战wiki知识库系统<十二>--用户管理&单点登录开发一
    目标:在上一次https://www.cnblogs.com/webor2006/p/17533745.html我们已经完成了文档管理的功能模块开发,接下来则开启新模块的学习---用户登录,这块还是有不少知识点值得学习的,先来看一下整体的效果,关于效果官网有一个体验地址:wiki.courseimooc.com,如下:其效果也是人人熟知的,下面......
  • VUE3_API 风格
    选项式API(OptionsAPI)使用选项式API,我们可以用包含多个选项的对象来描述组件的逻辑,例如 data、methods 和 mounted。选项所定义的属性都会暴露在函数内部的 this 上,它会指向当前的组件实例<script>exportdefault{//data()返回的属性将会成为响应式的状态/......
  • 使用create-vue创建vue3项目
    create-vue是vue3新的脚手架搭建项目工具,底层构建工具使用vite,而不是vue-cli的webpack。但不是说你不能用以前的vuecreate命令来创建vue3项目,你完全可以用vue-cli来创建。vite:https://cn.vitejs.dev/guide/#scaffolding-your-first-vite-project使用create-vue创建项目使用cr......
  • setup的执行时机
    setup是在beforeCreate之前执行的,也就是vue实例还未被创建,因为setup中并没有this指针<script>exportdefault{setup(){console.log('setup......')},beforeCreate(){console.log('beforeCreate....')},}</script>......