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

做平面资源比较好的网站建网站要花多少钱

做平面资源比较好的网站,建网站要花多少钱,中国国家人事人才培训网,交河做网站uni-app 从 Options API 迁移到 Composition API 的详细指南 一、迁移前的准备 升级环境: 确保 HBuilderX 版本 ≥ 3.2.0项目 uni-app 版本 ≥ 3.0.0 了解 Composition API 基础: 响应式系统:ref、reactive生命周期钩子:onMount…

uni-app 从 Options API 迁移到 Composition API 的详细指南

一、迁移前的准备
  1. 升级环境

    • 确保 HBuilderX 版本 ≥ 3.2.0
    • 项目 uni-app 版本 ≥ 3.0.0
  2. 了解 Composition API 基础

    • 响应式系统:refreactive
    • 生命周期钩子:onMountedonUnload
    • 组合函数:提取可复用逻辑
  3. 备份项目

    • 迁移前务必备份代码
    • 建议使用版本控制系统(如 Git)
二、渐进式迁移策略
  1. 组件级别迁移

    • 先迁移简单、独立的组件
    • 再处理复杂、依赖多的组件
  2. 功能模块迁移

    • 先迁移数据逻辑
    • 再迁移生命周期钩子
    • 最后处理计算属性和监听器
  3. 保持两种 API 并存

    • 迁移期间允许两种 API 在项目中共存
    • 新组件使用 Composition API,旧组件逐步迁移
三、基础语法迁移
1. 数据定义
// Options API
export default {data() {return {count: 0,user: {name: 'John',age: 30}};}
}// Composition API
import { ref, reactive } from 'vue';export default {setup() {// 基本类型用 refconst count = ref(0);// 对象用 reactiveconst user = reactive({name: 'John',age: 30});return {count,user};}
}
2. 方法定义
// Options API
export default {methods: {increment() {this.count++;}}
}// Composition API
import { ref } from 'vue';export default {setup() {const count = ref(0);const increment = () => {count.value++;};return {count,increment};}
}
3. 计算属性
// Options API
export default {computed: {doubleCount() {return this.count * 2;}}
}// Composition API
import { ref, computed } from 'vue';export default {setup() {const count = ref(0);const doubleCount = computed(() => count.value * 2);return {count,doubleCount};}
}
4. 监听器
// Options API
export default {watch: {count(newVal, oldVal) {console.log('count changed:', newVal, oldVal);}}
}// Composition API
import { ref, watch } from 'vue';export default {setup() {const count = ref(0);watch(count, (newVal, oldVal) => {console.log('count changed:', newVal, oldVal);});return {count};}
}
四、生命周期钩子迁移
// Options API
export default {onLoad() {console.log('页面加载');},onShow() {console.log('页面显示');},onUnload() {console.log('页面卸载');}
}// Composition API
import { onLoad, onShow, onUnload } from 'vue';export default {setup() {onLoad(() => {console.log('页面加载');});onShow(() => {console.log('页面显示');});onUnload(() => {console.log('页面卸载');});return {};}
}
五、组合函数提取复用逻辑
// Options API (mixins)
const counterMixin = {data() {return {count: 0};},methods: {increment() {this.count++;}}
};export default {mixins: [counterMixin]
}// Composition API (组合函数)
// useCounter.js
import { ref } from 'vue';export function useCounter(initialValue = 0) {const count = ref(initialValue);const increment = () => {count.value++;};return {count,increment};
}// 组件中使用
import { useCounter } from './useCounter';export default {setup() {const { count, increment } = useCounter(5);return {count,increment};}
}
六、使用 <script setup> 简化语法
<template><view><text>{{ count }}</text><button @click="increment">+1</button></view>
</template><script setup>
import { ref, onLoad } from 'vue';// 响应式数据
const count = ref(0);// 方法
const increment = () => {count.value++;
};// 生命周期钩子
onLoad(() => {console.log('页面加载');
});
</script>
七、处理组件通信
1. Props
// Options API
export default {props: {message: String},methods: {handleClick() {console.log(this.message);}}
}// Composition API
import { defineProps } from 'vue';export default {props: {message: String},setup(props) {const handleClick = () => {console.log(props.message);};return {handleClick};}
}// 或使用 <script setup>
<script setup>
const props = defineProps({message: String
});const handleClick = () => {console.log(props.message);
};
</script>
2. Emits
// Options API
export default {emits: ['update'],methods: {triggerUpdate() {this.$emit('update', 'new value');}}
}// Composition API
import { defineEmits } from 'vue';export default {emits: ['update'],setup(props, { emit }) {const triggerUpdate = () => {emit('update', 'new value');};return {triggerUpdate};}
}// 或使用 <script setup>
<script setup>
const emit = defineEmits(['update']);const triggerUpdate = () => {emit('update', 'new value');
};
</script>
八、处理特殊情况
1. 访问实例属性
// Options API
export default {methods: {callMethod() {this.$refs.myRef.focus();}}
}// Composition API
import { getCurrentInstance } from 'vue';export default {setup() {const { proxy } = getCurrentInstance();const callMethod = () => {proxy.$refs.myRef.focus();};return {callMethod};}
}
2. 处理 ref
// Options API
export default {mounted() {this.$refs.myRef.focus();}
}// Composition API
import { ref, onMounted } from 'vue';export default {setup() {const myRef = ref(null);onMounted(() => {myRef.value.focus();});return {myRef};}
}
九、测试与验证
  1. 单元测试

    • 确保迁移后的组件行为不变
    • 使用 Vue Test Utils 3.0+ 测试 Composition API
  2. 集成测试

    • 验证组件间交互正常
    • 测试路由、状态管理等集成功能
  3. 性能测试

    • 对比迁移前后的内存使用
    • 验证响应式系统性能
十、迁移建议
  1. 从简单组件开始

    • 先迁移无依赖的基础组件
    • 再迁移复杂业务组件
  2. 利用工具辅助

    • 使用 IDE 插件(如 Vetur)提供的代码转换功能
    • 参考 Vue 官方迁移工具
  3. 团队培训

    • 组织 Composition API 培训
    • 编写内部迁移指南和最佳实践
  4. 持续重构

    • 新功能优先使用 Composition API
    • 逐步重构旧组件

总结

从 Options API 迁移到 Composition API 是一个渐进的过程,需要耐心和规划。建议采用"组件级别迁移"和"功能模块迁移"相结合的策略,先易后难,逐步推进。在迁移过程中,充分利用 Composition API 的优势,如逻辑复用、更好的 TypeScript 支持等,提高代码质量和可维护性。


文章转载自:

http://dpHUmjrF.gthgf.cn
http://qu0QI5cJ.gthgf.cn
http://X0m5UusU.gthgf.cn
http://XpycsTP6.gthgf.cn
http://2VFFbQJa.gthgf.cn
http://MCbz9wz9.gthgf.cn
http://fqrixcBD.gthgf.cn
http://4BsWMglf.gthgf.cn
http://xSksWFzu.gthgf.cn
http://BWfWjn7m.gthgf.cn
http://KH37IZyy.gthgf.cn
http://N4Rd7mmJ.gthgf.cn
http://OOdBc05m.gthgf.cn
http://BeJ2r07i.gthgf.cn
http://8kZIdUTW.gthgf.cn
http://ss6VSGqX.gthgf.cn
http://scnD4GCq.gthgf.cn
http://Pmcc4nZ2.gthgf.cn
http://ONi8XbFm.gthgf.cn
http://xCdkS8xE.gthgf.cn
http://nowsIJHx.gthgf.cn
http://jSuwGi6Q.gthgf.cn
http://Wi2j2tao.gthgf.cn
http://G4U5tGeE.gthgf.cn
http://blS5BFW0.gthgf.cn
http://3xfW2cbQ.gthgf.cn
http://JtAk0oGB.gthgf.cn
http://bCwaAJc9.gthgf.cn
http://pcRudeaO.gthgf.cn
http://Mn4X8AY9.gthgf.cn
http://www.dtcms.com/wzjs/631770.html

相关文章:

  • 百度网站收录做网站图片自动切换
  • 网监要求网站备案密码管理admin
  • 外贸自建站平台怎么选安徽省美好乡村建设网站
  • 建网站和开发app哪个难抖音代运营合同注意事项
  • 哈尔滨企业网站建设报价定制产品网站有哪些
  • 东莞企业网站电话怎样局域网站建设
  • 上市公司的信息网站电影网站建设策划书
  • 图像处理与网站开发php+ajax网站开发典型实例pdf
  • 大丰网站制作财务公司业务范围
  • 做网址导航网站上海企业查询官网
  • 个人网站可以做淘客大尺度做爰网站在线
  • 广西城乡建设厅网站湖北省公共资源交易中心
  • 设计网站费用多少乐辰网站建设
  • 网站建设技术风险中国国际园林博览会
  • 做网站赌钱犯法吗穆棱建设局网站
  • 自助网站制作成都网站建设 外包
  • 网站管理员容易做吗如何做网站对话框
  • 权威发布e站科技有限公司简介
  • vue快速建站做cad室内平面图的家具素材网站
  • 免费网站看v片在线第一次做舞阳专业做网站
  • 北京住房城乡建设部网站八大员云南建设厅网站房地产开发资质
  • 如何看一个网站用什么程序做的龙岗区建设工程交易中心
  • 如何删除网站的信息吗做网站的准备什么软件
  • 南山商城网站建设哪家便宜微商城运营方案
  • 网站建设,h5,小程序怎样建立网站视频教程
  • 网站制作流程 优帮云seo快速提升排名
  • 新郑网站开发app开发公司宣传片
  • 做产品推广哪个网站好宽屏网站设计
  • 番禺建设网站哪个好重庆市建设工程施工安全管理总站
  • 网站做图分辨率是多少合适石家庄市城乡建设学校网站