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

宁波网站建设优化企业简历模板制作

宁波网站建设优化企业,简历模板制作,一般人做不了咨询顾问,广告设计制作公司经营范围Vue3 的内置 API 相比 Vue2 有较大调整,更注重模块化(按需导入)、TypeScript 支持和组合式 API 的灵活性。主要可分为全局 API、响应式 API、组件实例 API、生命周期钩子、模板相关 API 等几大类。以下是核心内置 API 的详细说明:…

Vue3 的内置 API 相比 Vue2 有较大调整,更注重模块化(按需导入)、TypeScript 支持和组合式 API 的灵活性。主要可分为全局 API响应式 API组件实例 API生命周期钩子模板相关 API 等几大类。以下是核心内置 API 的详细说明:

一、全局 API(从 vue 导入,替代 Vue2 的 Vue 构造函数方法)

全局 API 用于创建应用、定义组件、处理异步组件等,需从 vue 显式导入。

1. createApp(rootComponent, rootProps?)
  • 作用:创建 Vue 应用实例(替代 Vue2 的 new Vue()),是所有应用的入口。
  • 示例
    import { createApp } from 'vue'
    import App from './App.vue'const app = createApp(App) // 创建应用实例
    app.mount('#app') // 挂载到 DOM
    
  • 应用实例方法
    • app.mount(container):挂载应用到指定 DOM 容器;
    • app.component(name, component):全局注册组件;
    • app.directive(name, directive):全局注册指令;
    • app.use(plugin):安装插件(如 VueRouter、Pinia);
    • app.config:配置应用(如 app.config.errorHandler 捕获全局错误)。
2. defineComponent(options | setup)
  • 作用:定义一个组件,主要用于 TypeScript 类型推导(提供组件选项的类型提示),对运行时无影响。
  • 示例
    import { defineComponent } from 'vue'export default defineComponent({props: {title: String},setup(props) {return { props }}
    })
    
3. defineAsyncComponent(options | loader)
  • 作用:定义异步组件(按需加载,优化性能),替代 Vue2 的 () => import() 写法。
  • 示例
    import { defineAsyncComponent } from 'vue'// 简单写法:加载函数
    const AsyncComponent = defineAsyncComponent(() => import('./AsyncComponent.vue'))// 完整配置(加载状态、错误状态)
    const AsyncComponentWithOptions = defineAsyncComponent({loader: () => import('./AsyncComponent.vue'),loadingComponent: Loading, // 加载中显示的组件errorComponent: Error, // 加载失败显示的组件delay: 200, // 延迟显示加载组件(毫秒)timeout: 3000 // 超时时间(毫秒)
    })
    
4. 工具类 API
  • isVNode(vnode):判断一个值是否为 VNode(虚拟节点)。
  • mergeProps(...props):合并多个 props 对象(处理冲突,如 class、style 会合并,其他属性后者覆盖前者)。
  • toRefs(reactiveObj):将响应式对象(reactive 创建)转换为普通对象,其属性为 ref(用于解构响应式对象时保留响应性)。

二、响应式 API(核心,实现数据响应式)

响应式 API 是 Vue3 组合式 API 的核心,用于创建和操作响应式数据。

1. ref(value)
  • 作用:创建一个响应式的“引用类型”数据(支持基本类型、对象、数组),返回一个包含 value 属性的对象。
  • 特点:访问/修改时需通过 .value(模板中可省略)。
  • 示例
    import { ref } from 'vue'const count = ref(0) // 基本类型
    console.log(count.value) // 0
    count.value++ // 修改值(触发更新)const user = ref({ name: '张三' }) // 对象
    user.value.name = '李四' // 修改对象属性(响应式)
    
2. reactive(obj)
  • 作用:创建一个响应式的对象(仅支持对象/数组,不支持基本类型),返回原对象的响应式代理。
  • 特点:直接访问/修改属性(无需 .value),但不能直接赋值新对象(会丢失响应性)。
  • 示例
    import { reactive } from 'vue'const user = reactive({ name: '张三', age: 20 })
    user.age = 21 // 直接修改属性(响应式)// 错误:直接赋值新对象会丢失响应性
    // user = { name: '李四' } // 正确:修改内部属性
    Object.assign(user, { name: '李四' })
    
3. computed(getter | { get, set })
  • 作用:创建计算属性(依赖其他响应式数据,自动缓存结果)。
  • 示例
    import { ref, computed } from 'vue'const count = ref(1)
    // 只读计算属性
    const doubleCount = computed(() => count.value * 2)
    console.log(doubleCount.value) // 2// 可写计算属性
    const fullName = computed({get: () => `${firstName.value} ${lastName.value}`,set: (newVal) => {const [f, l] = newVal.split(' ')firstName.value = flastName.value = l}
    })
    
4. 监听类 API
  • watch(source, callback, options?):监听响应式数据变化(类似 Vue2 的 watch 选项)。

    import { ref, watch } from 'vue'const count = ref(0)
    // 监听单个ref
    watch(count, (newVal, oldVal) => {console.log(`count从${oldVal}变成${newVal}`)
    })// 监听多个源
    watch([count, user], ([newCount, newUser], [oldCount, oldUser]) => {// 处理变化
    }, { deep: true }) // 深度监听对象
    
  • watchEffect(effect):自动追踪依赖的响应式数据,依赖变化时重新执行(无需手动指定监听源)。

    import { ref, watchEffect } from 'vue'const count = ref(0)
    watchEffect(() => {console.log(`count变化了:${count.value}`) // 自动追踪count
    })
    
5. 响应式工具 API
  • isRef(value):判断一个值是否为 ref 创建的响应式引用。
  • unref(value):若 valueref,则返回其 .value;否则返回 value(简化访问)。
  • toRef(reactiveObj, key):从响应式对象中提取单个属性,创建一个 ref(与原对象保持关联)。
  • shallowRef(value) / shallowReactive(obj):创建“浅响应式”数据(只响应顶层属性变化,深层不响应)。
  • readonly(obj):创建一个只读的响应式代理(修改会警告,适合保护数据)。

三、组件实例 API(this 上的属性/方法,或组合式 API 中通过上下文访问)

组件实例 API 用于组件内部操作(如事件、插槽、DOM 等),在选项式 API 中通过 this 访问,在组合式 API 中需通过 getCurrentInstance 获取实例后访问。

1. 核心属性
  • $attrs:包含父组件传递的非 props 属性(除 class、style 外),可透传给子组件。
  • $emit(event, ...args):触发自定义事件(与 Vue2 一致,组合式 API 中直接用 emit)。
  • $slots:访问插槽内容(包含默认插槽和具名插槽,Vue3 中合并了 Vue2 的 $scopedSlots)。
    // 组合式 API 中访问插槽
    import { useSlots } from 'vue'
    const slots = useSlots()
    console.log(slots.default()) // 获取默认插槽内容
    
  • $refs:访问通过 ref 属性标记的 DOM 元素或组件实例(与 Vue2 类似,非响应式)。
2. 核心方法
  • $nextTick(callback):在 DOM 更新完成后执行回调(与 Vue2 一致,组合式 API 中可直接导入 nextTick)。
    import { nextTick } from 'vue'
    nextTick(() => {// DOM 已更新
    })
    
  • $forceUpdate():强制组件重新渲染(避免过度使用,优先通过响应式数据触发更新)。

四、生命周期钩子(组合式 API 中导入使用)

Vue3 的生命周期钩子需从 vue 导入,在 setup 中调用(替代 Vue2 选项式的生命周期选项)。

组合式 API选项式 API作用
onMountedmounted组件挂载后执行
onUpdatedupdated组件更新后执行(DOM 已更新)
onUnmountedunmounted组件卸载后执行
onBeforeMountbeforeMount组件挂载前执行
onBeforeUpdatebeforeUpdate组件更新前执行(DOM 未更新)
onBeforeUnmountbeforeDestroy组件卸载前执行
onErrorCapturederrorCaptured捕获子组件抛出的错误
  • 示例
    import { onMounted, onUnmounted } from 'vue'setup() {onMounted(() => {console.log('组件挂载完成')})onUnmounted(() => {console.log('组件已卸载')})
    }
    

五、模板相关 API(内置组件和指令)

1. 内置组件
  • <component :is="component" />:动态渲染组件(与 Vue2 一致,支持组件对象或注册名)。
  • <keep-alive>:缓存组件(避免切换时重复创建/销毁),可配合 include/exclude 控制缓存范围。
    <keep-alive include="ComponentA,ComponentB"><component :is="currentComponent" />
    </keep-alive>
    
  • <slot>:插槽出口,支持具名插槽(name 属性)和作用域插槽(v-bind 传递参数)。
2. 内置指令
  • v-model:双向绑定(Vue3 中统一了组件和表单元素的用法,支持自定义修饰符)。
  • v-if/v-else-if/v-else:条件渲染。
  • v-for:列表渲染(支持 (item, index) in list 或对象迭代)。
  • v-on(简写 @):事件绑定(支持修饰符如 .stop.prevent)。
  • v-bind(简写 :):属性绑定(支持对象语法和数组语法)。

六、Vue3 与 Vue2 API 对比的核心变化

  1. 全局 API 模块化:Vue2 的 Vue.component() 等全局方法,在 Vue3 中改为 app.component()(应用实例方法),需显式导入。
  2. 响应式 API 重构:用 ref/reactive 替代 Vue2 的 Object.defineProperty 实现,支持更灵活的响应式数据。
  3. 生命周期钩子导入化:组合式 API 中需导入生命周期函数,而非在选项中定义。
  4. 移除部分 API:如 $children(推荐用 $refs)、Vue.set(改为 set 导入)、Vue.delete(改为 delete 导入)。

总结

Vue3 的内置 API 设计更注重模块化和灵活性,组合式 API 中的响应式工具(ref/reactive)、生命周期钩子和全局应用方法(createApp)是核心。相比 Vue2,API 更清晰,TypeScript 支持更好,且按需导入减少了打包体积。掌握这些 API 是使用 Vue3 开发的基础。

http://www.dtcms.com/a/531213.html

相关文章:

  • 网站建站主题动漫网站设计
  • 网站底部模板源码金蝶网站建设公司案例
  • 网站dns解析设置做外贸网站那个好
  • 网站建设3000字盐城集团网站建设
  • 门户网站改造方案怎么简单页网站
  • 北京城市雕塑建设管理办公室网站wordpress架设主机
  • 超值的网站建设哪里有html5网站建设
  • 在线包车网站建设长沙微网站电话号码
  • 广州手机网站建设公司哪家好开发什么软件有市场
  • 如何用h5做网站芜湖做公司网站
  • 指定网站怎么设置路由器只访问合肥建设工程交易网站
  • 国内网站设计制作长安镇做网站
  • 网站定制电话贴吧网站建设
  • 国防教育网站建设方案文昌市建设局网站
  • 南京网站制作报价微信小程序注册要钱吗
  • 免费建站工具wordpress安装linux
  • 什么是网站推广?线上网站建设需求
  • 流放之路做装备词缀网站seo排名优化推荐
  • nginx 做网站色彩搭配比较好的网站
  • 网站做跳转在后天那个文件里做网站icp备案费用
  • 东莞网站建没刚做的网站 搜不到
  • 即墨区建设局网站外国网站怎么进入
  • 企业网站备案注销太原做网站设计
  • 广州华优_网站建设公司0基础学网站开发
  • 中英文网站如何做思路如何建设淘宝客网站
  • 温州多语言网站建设仿站网站
  • 网站后台怎么上传图片产品店面设计费一般多少钱一平
  • 手机网站拒绝访问怎么解决东莞制作公司网站的公司
  • 淄博网站推广网站域名分类
  • 怎么自己创立网站移动健康app下载