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

cms网站制作seo推广系统排名榜

cms网站制作,seo推广系统排名榜,网络推广有哪些渠道,南阳网站建设培训以下是 Vue 2 的响应式 API 和 Vue 3 的组合式 API 的详细对比,从核心机制、使用方式、代码示例及优缺点展开: 1. Vue 2 的响应式 API 核心机制 基于 Object.defineProperty: 通过劫持对象的 getter 和 setter 实现数据变化追踪。限制&…

以下是 Vue 2 的响应式 API 和 Vue 3 的组合式 API 的详细对比,从核心机制、使用方式、代码示例及优缺点展开:
在这里插入图片描述


1. Vue 2 的响应式 API

核心机制
  • 基于 Object.defineProperty
    • 通过劫持对象的 gettersetter 实现数据变化追踪。
    • 限制:无法检测属性的添加/删除,且不支持数组的某些变异操作(如直接修改索引 arr[0] = ...)。
主要 API
功能实现方式示例
声明响应式数据data 对象或 Vue.set/this.$set 添加属性```javascript

data() { return { count: 0 }; }
```
              |

| 计算属性 | computed 对象 | javascript <br>computed: { fullName() { return this.firstName + this.lastName; } }<br>
|
| 侦听器 | watch 对象或 this.$watch 方法 | javascript <br>watch: {<br> count: (newVal) => console.log(newVal)<br>}<br>
|
| 方法 | methods 对象 | javascript <br>methods: { increment() { this.count++; } }<br>
|

生命周期钩子
  • 分散在 Options 中:如 created, mounted, beforeDestroy 等。

2. Vue 3 的组合式 API

核心机制
  • 基于 Proxy
    • 全局响应式追踪,支持检测属性的增删改,且无需 Vue.set
    • 优势:更高效、更灵活,支持 for...in 遍历和数组变异操作。
核心函数
函数用途示例
reactive将对象转为响应式(返回 Proxy)```javascript

const state = reactive({ count: 0 });
```
          |

| ref | 将基本类型转为响应式(返回一个 .value 对象) | javascript <br>const count = ref(0);<br>
|
| computed | 声明计算属性(返回响应式引用) | javascript <br>const fullName = computed(() => state.firstName + state.lastName);<br>
|
| watch | 监听数据变化(支持更灵活的选项) | javascript <br>watch(count, (newVal) => console.log(newVal));<br>
|
| onMounted | 生命周期钩子(组合式 API 形式) | javascript <br>onMounted(() => console.log('Mounted'));<br>
|

核心函数对比
功能Vue 2Vue 3说明
响应式数据data 对象reactive/refVue 3 需显式声明响应式,支持更灵活的类型(对象/基本类型)。
计算属性computed 对象computed() 函数Vue 3 需通过函数声明,返回值需手动返回到模板。
侦听器watch 对象watch() 函数Vue 3 支持更灵活的选项(如 deep, immediate)。
方法methods 对象setup() 返回函数Vue 3 在 setup() 中定义方法并返回,无需 this

3. 组合式 API 核心特性

(1) setup() 函数
  • 入口点:所有逻辑集中在此函数中,替代 Options API 的分散选项。
  • 执行时机:在 beforeCreatecreated 之前执行。
  • 返回值:需返回一个对象,暴露给模板或子组件。
(2) ref vs reactive
函数适用场景示例
ref基本类型(如数字、字符串)或需要直接访问值的场景```javascript

const count = ref(0);
console.log(count.value);
```
reactive复杂对象(如对象、数组)或需要直接操作属性的场景```javascript

const state = reactive({ count: 0 });
console.log(state.count);
```
(3) 生命周期钩子
  • 组合式形式:通过 onXXX 前缀的函数声明(如 onMounted, onBeforeUnmount)。
  • 无需 this:直接在 setup() 中调用,无需通过 this 访问。

4. 代码示例对比

(1) 声明响应式数据
// Vue 2(Options API)
export default {data() {return { count: 0 };}
};// Vue 3(组合式 API)
import { ref } from 'vue';export default {setup() {const count = ref(0);return { count };}
};
(2) 计算属性
// Vue 2
export default {computed: {fullName() {return this.firstName + ' ' + this.lastName;}}
};// Vue 3
import { computed } from 'vue';export default {setup() {const state = reactive({firstName: 'John',lastName: 'Doe'});const fullName = computed(() => state.firstName + ' ' + state.lastName);return { fullName };}
};
(3) 生命周期
// Vue 2
export default {mounted() {console.log('Mounted');}
};// Vue 3
import { onMounted } from 'vue';export default {setup() {onMounted(() => console.log('Mounted'));return {};}
};

5. 对比总结表格

特性Vue 2Vue 3(组合式 API)优势/差异
响应式核心Object.definePropertyProxyVue 3 支持属性增删和更灵活的数组操作。
数据声明data 对象reactive/ref 显式声明Vue 3 需显式声明响应式,避免隐式问题。
计算属性computed 对象computed() 函数Vue 3 更灵活,支持返回函数或对象。
侦听器watch 对象watch() 函数Vue 3 支持更细粒度的选项(如 deep, flush)。
方法methods 对象setup() 返回函数Vue 3 逻辑集中,减少 Options 耦合。
生命周期钩子分散在 Options 中onXXX 函数集中声明Vue 3 钩子名更规范(如 onMounted),无需 this
代码复用Mixins(易冲突)自定义组合函数(无污染)组合式 API 更易复用且避免命名冲突。
模板绑定this.countcount(通过 ref)或 state.count(通过 reactiveVue 3 需通过 ref.valuereactive 对象访问值。

6. 迁移建议

  1. 逐步迁移:在 Vue 2 项目中可通过 @vue/composition-api 渐进式引入组合式 API。
  2. 优先使用组合式 API:在新项目中推荐使用组合式 API,因其更灵活、可维护。
  3. 注意 refreactive 的区别:根据数据类型选择合适的方式声明响应式。
  4. 生命周期钩子替换:Vue 3 的 setup() 会提前执行,需调整初始化逻辑顺序。

如需更详细示例,可参考 Vue 3 官方文档。


文章转载自:

http://yEhbXcXM.csjps.cn
http://T6fky6og.csjps.cn
http://G7CGSaJE.csjps.cn
http://u10fZ2T1.csjps.cn
http://AmOr2HP3.csjps.cn
http://JzFRuiAN.csjps.cn
http://CESj8jfm.csjps.cn
http://qRxabvZc.csjps.cn
http://lyqnDufj.csjps.cn
http://AnlXaYKQ.csjps.cn
http://tJWn3gA6.csjps.cn
http://P9qwWzJM.csjps.cn
http://QBEqpHKe.csjps.cn
http://NWrgHZR3.csjps.cn
http://KksDh65H.csjps.cn
http://Q69a1gY0.csjps.cn
http://eYCsdGfQ.csjps.cn
http://PhMlytWn.csjps.cn
http://OSNz4L8J.csjps.cn
http://emQkfWCv.csjps.cn
http://jjq7V0JD.csjps.cn
http://SJ2oJZm2.csjps.cn
http://s9rPvlyn.csjps.cn
http://lwToQV1K.csjps.cn
http://r2XsXh8q.csjps.cn
http://a142DrBX.csjps.cn
http://x0tTjTiD.csjps.cn
http://IWcLsgHA.csjps.cn
http://nWIgaWuG.csjps.cn
http://seyhcZGR.csjps.cn
http://www.dtcms.com/wzjs/636332.html

相关文章:

  • 南京网站开发招聘微信商城如何开通
  • 长春网站建设长春电梯公司抖音餐厅代运营方案
  • 昆山建设银行网站首页合肥百度 网站建设
  • 随州网站推广哪家好查wordpress模板
  • 中国建设银行个人网上银行网站广州建设信息网
  • 无锡网站建设专家无锡网站制作建工网校怎么样
  • 本溪做网站的公司柳州网站建设
  • 网站模板代理电话网站制作营销型
  • wordpress 内网 插件潍坊seo网络推广
  • 企业网站美化做照片书的网站好
  • 鲜花销售网站建设策划表详情页怎么做
  • 网站建设需求范文杭州工程招标网
  • 北京企业网站设计制作公司做年审在哪个网站
  • 网站建设这门课好学吗vs简易新闻建设网站
  • 网站导航界面网站网络推广方法
  • 中英切换的网站咋做甘肃省建设厅执业资格注册网站
  • 网站扁平化结构和树形结构网站运营 网站建设
  • 安国网站建设办公室装修费用会计分录
  • 中山网站建设华联在线wordpress加载进度条
  • 二级域名搭wordpress上海做网站优化的公司
  • 同性恋色做视频网站有哪些有哪些做室内设计好用的网站
  • 沈阳高端网站制作公司搜狗推广下架
  • iis网站改端口网站开发建设哪家好
  • 服装网都有哪些网站芜湖效能建设网站
  • 制作网站演示网站建设全过程
  • 建立网站的平台做英文题的网站
  • 乡镇网站建设和培训静态中英文网站怎么做
  • 猪八戒网站建设报价建设网站是否等于开展网络营销
  • 有了源码可以做网站吗珠宝类网站建设
  • 网站备案号在哪热转印 东莞网站建设