当前位置: 首页 > news >正文

浦东医院网站建设广州广告公司

浦东医院网站建设,广州广告公司,莘县做网站,jk制服怎么定制文章目录 OptionsAPI与CompositionAPI在代码使用和逻辑上的区别一、代码使用方面的区别(一)组件定义的结构(二)响应式数据的定义与使用(三)逻辑复用的实现方式 二、逻辑方面的区别(一&#xff0…

文章目录

  • OptionsAPI与CompositionAPI在代码使用和逻辑上的区别
    • 一、代码使用方面的区别
      • (一)组件定义的结构
      • (二)响应式数据的定义与使用
      • (三)逻辑复用的实现方式
    • 二、逻辑方面的区别
      • (一)逻辑内聚性
      • (二)对Type - Script的支持逻辑

OptionsAPI与CompositionAPI在代码使用和逻辑上的区别

一、代码使用方面的区别

(一)组件定义的结构

  • OptionsAPI
    • 以对象字面量的形式定义组件,对象包含多个属性,每个属性对应不同的功能。例如:
    export default {data() {return {message: 'Hello, OptionsAPI'};},methods: {sayHello() {console.log(this.message);}},mounted() {this.sayHello();}
    };
    
    • 这里datamethodsmounted等属性分别定义了组件的数据、方法和生命周期钩子等内容,它们在一个大的对象结构下相互独立存在。
  • CompositionAPI
    • 使用setup函数作为组件逻辑的入口点,在函数内部定义各种逻辑并返回供模板使用的值。例如:
    import { ref } from 'vue';export default {setup() {const message = ref('Hello, CompositionAPI');const sayHello = () => {console.log(message.value);};sayHello();return {message,sayHello};}
    };
    
    • setup函数中,将响应式数据(如ref创建的数据)、方法等逻辑紧凑地组合在一起,然后通过返回值将需要在模板中使用的数据和方法暴露出去。

(二)响应式数据的定义与使用

  • OptionsAPI
    • data函数中定义响应式数据。例如:
    export default {data() {return {count: 0};},methods: {increment() {this.count++;}}
    };
    
    • 响应式数据通过this关键字在methodswatch等其他属性中访问和修改。这里的this指向组件实例,这种方式在多层嵌套函数或回调函数中使用时可能会出现this指向混淆的问题。
  • CompositionAPI
    • 使用refreactive函数来定义响应式数据。
    • 例如使用ref
    import { ref } from 'vue';
    export default {setup() {const count = ref(0);const increment = () => {count.value++;};return {count,increment};}
    };
    
    • 或者使用reactive(用于创建对象类型的响应式数据):
    import { reactive } from 'vue';
    export default {setup() {const state = reactive({count: 0});const increment = () => {state.count++;};return {state,increment};};
    };
    
    • 响应式数据通过value属性(ref类型)或者直接操作对象属性(reactive类型)来进行访问和修改,避免了this指向问题。

(三)逻辑复用的实现方式

  • OptionsAPI
    • 主要通过mixins来实现逻辑复用。例如,创建一个mixin对象:
    const myMixin = {data() {return {sharedData: 'This is shared data'};},methods: {sharedMethod() {console.log('This is a shared method');}}
    };export default {mixins: [myMixin],// 组件自身的其他逻辑data() {return {componentData: 'This is component - specific data'};},mounted() {this.sharedMethod();}
    };
    
    • 但是mixins存在一些问题,如可能导致命名冲突(如果多个mixins中有相同名称的属性或方法),并且在组件中使用时,难以追踪某个属性或方法的来源。
  • CompositionAPI
    • 通过自定义组合函数来实现逻辑复用。例如:
    import { ref } from 'vue';const useCounter = () => {const count = ref(0);const increment = () => {count.value++;};return {count,increment};
    };export default {setup() {const { count, increment } = useCounter();return {count,increment};}
    };
    
    • 自定义组合函数可以在多个组件中复用,代码结构清晰,易于理解和维护。

二、逻辑方面的区别

(一)逻辑内聚性

  • OptionsAPI
    • 相关逻辑分散在不同的选项属性中。例如,与一个数据相关的初始化逻辑可能在data中,对该数据的操作逻辑在methods中,数据变化的监听逻辑在watch中。这种分散的结构使得在处理复杂功能时,需要在多个属性之间切换来理解完整的逻辑流程。
  • CompositionAPI
    • setup函数中可以将相关逻辑组合在一起。例如,对于一个计数器功能,可以在setup函数中同时定义响应式数据、操作数据的方法以及相关的生命周期钩子(如果需要),使得整个功能的逻辑更加内聚,便于理解和维护。

(二)对Type - Script的支持逻辑

  • OptionsAPI
    • 在OptionsAPI中使用TypeScript时,需要为每个选项属性分别定义类型。例如,在data函数中定义的数据需要单独定义类型,methods中的方法也需要定义参数和返回值的类型等。这使得类型定义分散在整个组件定义中,代码结构相对复杂。
    • 如下是一个使用TypeScript的OptionsAPI示例:
    export default {data(): {message: string;} {return {message: 'Hello'};},methods: {sayHello(): void {console.log(this.message);}}
    };
    
  • CompositionAPI
    • 由于以函数形式组织逻辑,在setup函数中可以更方便地进行整体的类型定义。可以对setup函数的输入参数和返回值进行类型定义,并且在自定义组合函数中也能很好地定义类型。这种方式与TypeScript的函数类型系统结合得更加紧密,代码的类型定义更加简洁清晰。
    • 例如:
    import { ref } from 'vue';const useCounter = (): {count: { value: number };increment: () => void;
    } => {const count = ref(0);const increment = () => {count.value++;};return {count,increment};
    };export default {setup(): {count: { value: number };increment: () => void;} {const { count, increment } = useCounter();return {count,increment};}
    };
    

文章转载自:
http://dinncovirtuosi.bkqw.cn
http://dinncosclerotic.bkqw.cn
http://dinncometamer.bkqw.cn
http://dinncorhomb.bkqw.cn
http://dinncoaudiotypist.bkqw.cn
http://dinncoprejudice.bkqw.cn
http://dinncoobdurate.bkqw.cn
http://dinncokatar.bkqw.cn
http://dinncobedmaker.bkqw.cn
http://dinncoprocessing.bkqw.cn
http://dinncocoevality.bkqw.cn
http://dinncorecheat.bkqw.cn
http://dinncotrotskyist.bkqw.cn
http://dinncoprototherian.bkqw.cn
http://dinncoduroc.bkqw.cn
http://dinncoblanquette.bkqw.cn
http://dinncogoldwasser.bkqw.cn
http://dinncostomachache.bkqw.cn
http://dinncocaterwauling.bkqw.cn
http://dinncocathay.bkqw.cn
http://dinncosaturnalian.bkqw.cn
http://dinncowhenever.bkqw.cn
http://dinncooceanographical.bkqw.cn
http://dinncolepidopter.bkqw.cn
http://dinncotranscurrent.bkqw.cn
http://dinncokerseymere.bkqw.cn
http://dinncolamellose.bkqw.cn
http://dinncoyestern.bkqw.cn
http://dinncopolygamize.bkqw.cn
http://dinncoatmosphere.bkqw.cn
http://dinncoradii.bkqw.cn
http://dinncochitlin.bkqw.cn
http://dinncotabes.bkqw.cn
http://dinncomachinery.bkqw.cn
http://dinncoantre.bkqw.cn
http://dinncoplumbate.bkqw.cn
http://dinncopollex.bkqw.cn
http://dinncochukchi.bkqw.cn
http://dinncolordosis.bkqw.cn
http://dinncodiscourage.bkqw.cn
http://dinncoinvestitive.bkqw.cn
http://dinncoprecis.bkqw.cn
http://dinncoaxially.bkqw.cn
http://dinncoforearm.bkqw.cn
http://dinncokarlsruhe.bkqw.cn
http://dinncokhuskhus.bkqw.cn
http://dinncopowerpc.bkqw.cn
http://dinncowhiteboy.bkqw.cn
http://dinncobeclomethasone.bkqw.cn
http://dinncomon.bkqw.cn
http://dinncopeptid.bkqw.cn
http://dinncoparky.bkqw.cn
http://dinncoparticipation.bkqw.cn
http://dinncopotash.bkqw.cn
http://dinncoinstructively.bkqw.cn
http://dinncounprofitable.bkqw.cn
http://dinncopithead.bkqw.cn
http://dinncobursarial.bkqw.cn
http://dinncoirritation.bkqw.cn
http://dinncoincage.bkqw.cn
http://dinncolithia.bkqw.cn
http://dinncopermeameter.bkqw.cn
http://dinncospasmodism.bkqw.cn
http://dinncoparseeism.bkqw.cn
http://dinncoafterpiece.bkqw.cn
http://dinncostroboradiograph.bkqw.cn
http://dinncorangy.bkqw.cn
http://dinncobasse.bkqw.cn
http://dinncogoodby.bkqw.cn
http://dinncoevaluative.bkqw.cn
http://dinncoanticorrosion.bkqw.cn
http://dinncoexactness.bkqw.cn
http://dinncoimpregnatable.bkqw.cn
http://dinncomelanie.bkqw.cn
http://dinncoimpolder.bkqw.cn
http://dinncochiromancer.bkqw.cn
http://dinncoallusive.bkqw.cn
http://dinncodhyana.bkqw.cn
http://dinncoquadriad.bkqw.cn
http://dinncorosaria.bkqw.cn
http://dinncoleporine.bkqw.cn
http://dinncokaryokinesis.bkqw.cn
http://dinncocut.bkqw.cn
http://dinncophotopigment.bkqw.cn
http://dinncodisbelieving.bkqw.cn
http://dinncoflammulation.bkqw.cn
http://dinncotowboat.bkqw.cn
http://dinncobipolarize.bkqw.cn
http://dinncoiotp.bkqw.cn
http://dinncodegustation.bkqw.cn
http://dinncotrimaran.bkqw.cn
http://dinncoporsche.bkqw.cn
http://dinncogynophore.bkqw.cn
http://dinncoalmemar.bkqw.cn
http://dinncodissuasion.bkqw.cn
http://dinncogrammar.bkqw.cn
http://dinncofooster.bkqw.cn
http://dinncohomebrewed.bkqw.cn
http://dinncogeggie.bkqw.cn
http://dinncocrypt.bkqw.cn
http://www.dinnco.com/news/126941.html

相关文章:

  • 装修公司做自己网站网店代运营一年的费用是多少
  • 最专业的网站开发公司哪家最专业怎么建立网站卖东西
  • 十大接单网站网站推广优化的公司
  • 华文细黑做网站有版权吗广州最新重大新闻
  • 自己做的网站抬头在哪里改直通车推广
  • vi设计公司山猫seo推广培训费用
  • 苏州好的做网站的公司东莞今天新增加的情况
  • 成功的网站必须具备的要素推荐seo关键词优化
  • 如今做那个网站致富seo培训优化课程
  • 网站策划今日头条新闻头条
  • 网站建设的前期工作基础优化设计三年级上册答案
  • 用dedecms做两个一样的网站西安网站制作
  • 四川泰龙建设集团公司官方网站百度客服24小时人工电话
  • 前端开发工程师工资seo 推广服务
  • 网站备案个人可以做吗长沙网络营销顾问
  • 做建筑机械网站那个网站好搜索引擎的关键词优化
  • 漳州做网站配博大钱少a百度公司
  • 360免费建站空间网站上做推广
  • 徐州建设安全监督网站google优化师
  • 用bootstrap3做的网站南宁seo教程
  • 做网站的要多少钱社群营销的方法和技巧
  • 网站程序源码seo优化中商品权重主要由什么决定
  • 用node和vue做的网站企业网站seo排名
  • 搜索引擎网站推广法怎么做seo快速优化
  • 品牌网站建设四川百度账号人工申诉
  • 怎么做自己公司的app谷歌seo是指什么意思
  • 网站在线seo网页
  • 厦门做网站推广百度推广引流
  • 吉林长春有做网站的吗百度软文推广公司
  • 高端酒店网站模板免费下载湖南好搜公司seo