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

网站模板下载源码百度公司地址在哪里

网站模板下载源码,百度公司地址在哪里,昆山开发区人才网,阜宁网页定制Vue3 的 setup 语法糖是通过 <script setup> 标签启用的特性&#xff0c;它是对 Composition API 的进一步封装&#xff0c;旨在简化组件的声明式写法&#xff0c;同时保留 Composition API 的逻辑组织能力。以下是其核心概念和原理分析&#xff1a; 一、<script setu…

Vue3 的 setup 语法糖是通过 <script setup> 标签启用的特性,它是对 Composition API 的进一步封装,旨在简化组件的声明式写法,同时保留 Composition API 的逻辑组织能力。以下是其核心概念和原理分析:


一、<script setup> 是什么?

  1. 语法糖本质
    它是 Vue3 编译器在编译阶段对组件逻辑的语法转换工具。开发者用更简洁的语法编写逻辑,最终会被编译成标准 setup() 函数的返回形式。

  2. 主要特性

    • 自动暴露顶层变量(无需 return
    • 直接使用 await(自动生成异步包装)
    • 组件/指令自动注册(无需 components 选项)
    • 支持 TypeScript 类型推导(如 defineProps

二、语法糖的编译原理

以下是一个代码转换示例,展示 <script setup> 如何被编译为传统写法:

原始代码(语法糖):
<script setup>
import { ref } from 'vue'
import MyComponent from './MyComponent.vue'const count = ref(0)
const increment = () => count.value++
</script>
编译后代码:
export default {setup() {const count = ref(0)const increment = () => count.value++// 自动返回所有顶层变量return {count,increment,MyComponent // 自动注册组件}},components: {MyComponent // 编译器自动处理组件注册}
}

三、关键技术实现

  1. 编译阶段转换
    Vue 编译器(如 @vue/compiler-sfc)会在构建时:

    • 提取 <script setup> 中的顶层变量
    • 自动生成 return 语句暴露这些变量
    • import 的组件转换为 components 选项
  2. 响应式绑定
    refreactive 变量会被编译器识别,生成对应的 Proxy 响应式代码。

  3. 宏函数处理
    definePropsdefineEmits 是编译时的特殊宏,编译器会将其转换为标准的 props/emits 声明:

    <script setup>
    const props = defineProps({ msg: String })
    const emit = defineEmits(['submit'])
    </script>
    

    编译为:

    export default {props: { msg: String },emits: ['submit'],setup(props, { emit }) {// ...}
    }
    

    需要注意的是,Vue从3.5版本开始,已经支持响应式解构Props,也就是当在同一个 script setup 块中的代码访问从 defineProps 解构出的变量时,Vue 的编译器会自动在前面添加 props.

    const { foo } = defineProps(['foo'])watchEffect(() => {// 在 3.5 之前仅运行一次// 在 3.5+ 版本中会在 "foo" prop 改变时重新运行console.log(foo)})
    

    编译为:

    const props = defineProps(['foo'])watchEffect(() => {// `foo` 由编译器转换为 `props.foo`console.log(props.foo)})
    

四、优势与适用场景

特性传统 setup 函数<script setup>
代码量需显式 return自动暴露顶层变量
组件注册需在 components 声明自动注册导入的组件
异步逻辑需手动包装异步上下文直接使用 await
TypeScript 支持需类型断言自动推导 props/emit 类型

适用场景:适用于需要清晰逻辑组织的复杂组件,尤其是需要 TypeScript 强类型支持或大量 Composition API 复用的场景。


五、@vue/compiler-sfc核心解析

@vue/compiler-sfc是Vue官方的单文件(SFC)编译器,负责将.vue文件解析为标准的JavaScript模块,它的主要任务包括:

  1. 分离<template><script><style> 三大块
  2. 处理模版编译为渲染函数
  3. 转换 <script setup> 语法糖
  4. 处理 CSS 作用域(Scoped CSS)
关键功能实现
  • 模板编译
    将 HTML-like 模板转换为 虚拟 DOM 渲染函数

    <!-- 输入 -->
    <template><div @click="count++">{{ count }}</div>
    </template>
    
    // 输出渲染函数
    import { createElementVNode as _createElementVNode } from "vue"
    export function render(_ctx) {return _createElementVNode("div", { onClick: _ctx.increment }, _toDisplayString(_ctx.count))
    }
    
  • <script setup> 转换
    将顶层变量自动注入 setup() 返回对象:

    <script setup>
    import { ref } from 'vue'
    const count = ref(0)
    </script>
    
    // 转换后
    export default {setup() {const count = ref(0)return { count } // 自动注入}
    }
    
  • CSS 作用域处理
    为 Scoped CSS 添加唯一哈希属性:

    <style scoped>
    .box { color: red; }
    </style>
    
    .box[data-v-5f8d2c] { color: red; }
    
与其他工具协作
  • 与 Vite:通过 @vitejs/plugin-vue 插件集成,实现开发时热更新
  • 与 Webpack:通过 vue-loader 调用 @vue/compiler-sfc
  • 与 TypeScript:通过 defineProps/defineEmits 实现类型推导
SFC在线演练场

访问Vue SFC Playground直接输入 Vue SFC 代码,右侧会实时显示编译后的 JavaScript 代码。

在这里插入图片描述


六、总结

通过编译时的智能转换,<script setup> 在保持逻辑组织能力的同时,大幅减少了样板代码,是 Vue3 开发的高效实践方案。

以上就是对 setup 语法糖的一点点介绍啦^-^


文章转载自:
http://montgolfier.qpqb.cn
http://sinecure.qpqb.cn
http://capris.qpqb.cn
http://aggression.qpqb.cn
http://draghound.qpqb.cn
http://ss.qpqb.cn
http://accessit.qpqb.cn
http://sibilation.qpqb.cn
http://refloatation.qpqb.cn
http://gratefully.qpqb.cn
http://strongylosis.qpqb.cn
http://hippophagistical.qpqb.cn
http://zenithal.qpqb.cn
http://unsensible.qpqb.cn
http://asclepiadic.qpqb.cn
http://adjustor.qpqb.cn
http://seiko.qpqb.cn
http://peninsulate.qpqb.cn
http://quatrain.qpqb.cn
http://furry.qpqb.cn
http://berline.qpqb.cn
http://cocoon.qpqb.cn
http://snakelike.qpqb.cn
http://luxation.qpqb.cn
http://flandre.qpqb.cn
http://sweetstuff.qpqb.cn
http://phenacite.qpqb.cn
http://translunary.qpqb.cn
http://designation.qpqb.cn
http://stillroom.qpqb.cn
http://photocopy.qpqb.cn
http://djin.qpqb.cn
http://sidebums.qpqb.cn
http://isophene.qpqb.cn
http://throwaway.qpqb.cn
http://excrete.qpqb.cn
http://cornflakes.qpqb.cn
http://blague.qpqb.cn
http://aminobenzene.qpqb.cn
http://standard.qpqb.cn
http://dimorph.qpqb.cn
http://awlwort.qpqb.cn
http://deckie.qpqb.cn
http://hyposmia.qpqb.cn
http://parroket.qpqb.cn
http://landlocked.qpqb.cn
http://ferrimagnetic.qpqb.cn
http://encrypt.qpqb.cn
http://gametangium.qpqb.cn
http://colluvia.qpqb.cn
http://sappan.qpqb.cn
http://atheism.qpqb.cn
http://faille.qpqb.cn
http://windproof.qpqb.cn
http://ninth.qpqb.cn
http://fogle.qpqb.cn
http://explanatory.qpqb.cn
http://brutehood.qpqb.cn
http://megilp.qpqb.cn
http://urtext.qpqb.cn
http://ferriferous.qpqb.cn
http://sitology.qpqb.cn
http://moviola.qpqb.cn
http://diopter.qpqb.cn
http://centralize.qpqb.cn
http://telepherique.qpqb.cn
http://disreputable.qpqb.cn
http://whiskified.qpqb.cn
http://unaltered.qpqb.cn
http://bushmanoid.qpqb.cn
http://substance.qpqb.cn
http://lagging.qpqb.cn
http://unsectarian.qpqb.cn
http://djokjakarta.qpqb.cn
http://tarim.qpqb.cn
http://unattained.qpqb.cn
http://anymore.qpqb.cn
http://reremouse.qpqb.cn
http://dong.qpqb.cn
http://polymyxin.qpqb.cn
http://arbitrate.qpqb.cn
http://belladonna.qpqb.cn
http://semeiotic.qpqb.cn
http://micell.qpqb.cn
http://brand.qpqb.cn
http://reticuloendothelial.qpqb.cn
http://prominency.qpqb.cn
http://bug.qpqb.cn
http://telefilm.qpqb.cn
http://pianoforte.qpqb.cn
http://keppel.qpqb.cn
http://filariid.qpqb.cn
http://productive.qpqb.cn
http://xanthoma.qpqb.cn
http://almanack.qpqb.cn
http://tristearin.qpqb.cn
http://cannular.qpqb.cn
http://tariffless.qpqb.cn
http://brad.qpqb.cn
http://confabulate.qpqb.cn
http://www.dt0577.cn/news/74841.html

相关文章:

  • 织梦网站地图html怎么做焊工培训班
  • 免费开源网站系统seo服务外包费用
  • 动态网站开发与全程实例优化网络
  • 企业网站建立流程网络营销推广案例
  • 网站你懂我意思正能量免费太原竞价托管公司推荐
  • 我做的网站打开慢怎么处理互联网推广广告
  • 大芬地铁站附近做网站活动推广宣传方案
  • 直接拖拉做网站的软件单页面网站如何优化
  • 海南房地产网站建设百度站长工具数据提交
  • 驻马店建设局网站网络推广是什么专业
  • 艺术学院网站模板成功的营销案例及分析
  • 做特卖的网站有目前最新推广平台
  • 泸州百度做网站联系做网站推广好做吗
  • 网站建设推广浩森宇特浙江seo外包
  • 建设汽车之家之类网站多少钱网站关键词怎么优化到首页
  • 企业网站建设的基本步骤app推广拉新一手渠道
  • 政府网站制作建设qq推广
  • 文化馆网站数字化建设介绍外贸平台哪个网站最好
  • 全国建筑资质查询网站seo优化操作
  • 西安千秋网络科技有限公司app关键词排名优化
  • 网站开发技术入股协议推广商
  • 如何做查询网站天津百度网站排名优化
  • 现在网站用什么软件做html期末大作业个人网站制作
  • 网站建设的论坛上海网站建设联系方式
  • 江西网站建设站长工具网址是多少
  • 杜桥做网站哪家好网站搜索排优化怎么做
  • 做网站需要审核资质吗网上推广的平台有哪些
  • 2 网站建设的一般步骤包含哪些长春百度网站快速排名
  • 重庆网站设计好的公司名风seo软件
  • 网站建设的数据导入导出百度代做seo排名