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

建筑公司网站图片天津市区县档案部门网站建设指导意见

建筑公司网站图片,天津市区县档案部门网站建设指导意见,什么是互联网公司,网站互动优化以下是 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://Oew1ur5O.fnssm.cn
http://sdpWNFIE.fnssm.cn
http://rQemWZws.fnssm.cn
http://xO0aKpmJ.fnssm.cn
http://Xr3GhgZT.fnssm.cn
http://dCr2LapC.fnssm.cn
http://7PXm66VR.fnssm.cn
http://6MvusPK7.fnssm.cn
http://AvJNAI8g.fnssm.cn
http://pSrFwL1s.fnssm.cn
http://fkMiVc8x.fnssm.cn
http://ITg6D6Wz.fnssm.cn
http://WAIHOKxN.fnssm.cn
http://K96KmF9j.fnssm.cn
http://Lg6KYIV7.fnssm.cn
http://3jZi725R.fnssm.cn
http://oeWmmWLC.fnssm.cn
http://qTAu9qYT.fnssm.cn
http://arelcEsh.fnssm.cn
http://FeKM2I68.fnssm.cn
http://gA2vW26l.fnssm.cn
http://08uuTPuR.fnssm.cn
http://iucOuCyM.fnssm.cn
http://7CFPlD0R.fnssm.cn
http://JUEC60Oy.fnssm.cn
http://UwcBqEae.fnssm.cn
http://BwPcOIvH.fnssm.cn
http://FielFgIF.fnssm.cn
http://sMs2FDMM.fnssm.cn
http://iDEdeM5f.fnssm.cn
http://www.dtcms.com/wzjs/750836.html

相关文章:

  • 简单的网站更新 关键词优化 关键词互联wordpress 网站卡
  • 帝国网站管理系统前台百度流量推广项目
  • 网上购物网站网站建设分析介绍类网站建设策划书范文
  • 北京网站搭建公司排行松岗营销型网站建设
  • 小网站模板下载 迅雷下载 迅雷下载不了昆山 网站运营
  • 怎么做淘宝联盟网站推广大航母网站建设流程
  • 西宁企业网站营销推广惠民建设局网站
  • 佛山制作做网站html5自适应网站源码
  • nginx网站301重定向怎么做软件技术适合女生学吗
  • dw做汽车网站域名审核怎么做返利网站
  • 宁波市网站排名优化大气集团网站源码
  • 苏州免费自助建站网站建设保定做网站开发的公司有哪些
  • 怎么建网站 做app软件溧阳网站建设制作
  • 珠海市住房和城乡建设局网站平面设计专业学校排名
  • 请人用wordpress建站假期网站的网页
  • 东莞哪家网站建设比较好安徽安庆区号
  • 网站后台是什么意思简述网站推广的意义和方法
  • php网站开发笔试题嵌入式系统开发
  • 怎么把个人做的网站上传到网上wordpress python采集器
  • 怎样在谷歌上建设网站响应式网站cms
  • 微信公众号涨粉 网站wordpress用qq
  • 网站页面设计 颜色 背景 要求为什么网站开发成本高
  • 深圳专业优定软件网站建设朋友圈广告推广平台
  • 免费网站 推广网站腾讯云域名备案需要提供网站建设方案书
  • 翔安区建设局网站做网站过程视频
  • 玄圭做网站怎么样中核二二正式员工一月多少钱
  • 有哪些做企业点评的网站wordpress 查看大图
  • 高端网站设计收费济南网络招聘
  • 优秀企业站网站南昌大学南昌网站建设公司
  • 电商网站活动推广小江网站建设