vue3.2中setup语法糖

Vue 3.0 组件(上) 组件的定义其实就是实现应用中局部功能代码(html,css,js)和资源(MP3 ,MP4,img,ttf等)的集合。其优势是能复用编码,简化项目代码,提高运行效率,降低程序员重复编码。用组件方式来编写页面,其实简单理解来说就是把一个完整的网页拆分成一个又一个的组件,就比如说,一个网页包含头部导航,主体内容,底部信息。 阅读详情

**1.最开始Vue3.0 暴露变量方法必须 return 出来,template中才能使用;
2.现在只需在script标签中添加setup,组件只需引入不用注册
3.属性和方法也不用返回,也不用写setup函数,也不用写export default
4.甚至是自定义指令也可以在我们的template中自动获得。
**

<template>
  <my-component :num="num" @click="addNum" />
</template>

<script setup>
  import { ref } from 'vue';
  import MyComponent from './MyComponent .vue';

  // 像在平常的setup中一样的写,但是不需要返回任何变量
  const num= ref(0)       //在此处定义的 num 可以直接使用
  const addNum= () => {   //函数也可以直接引用,不用在return中返回
    num.value++
  }
</script>

1、使用setup组件自动注册

**1.在 script setup 中,引入的组件可以直接使用,无需再通过components进行注册
2.并且无法指定当前组件的名字,它会自动以文件名为主,也就是不用再写name属性了。示例:
**

<template>
    <zi-hello></zi-hello>
</template>

<script setup>
  import ziHello from './ziHello'
</script>

2、使用setup后新增API:因为没有了setup函数,那么props,emit怎么获取呢?setup script语法糖提供了新的API来供我们使用。

3.1 defineProps 用来接收父组件传来的 props。示例:

父组件

<template>
  <div class="die">
    <h3>我是父组件</h3>
    <zi-hello :name="name"></zi-hello>
  </div>
</template>

<script setup>
  import ziHello from './ziHello'
  import {ref} from 'vue'
  let name = ref('我是父组件')
</script>

子组件

<template>
  <div>
    我是子组件{{name}}
  </div>
</template>

<script setup>
  import {defineProps} from 'vue'
  defineProps({
   name:{
     type:String,
     default:'我是默认值'
   }
 })
</script>

3、defineEmits 子组件向父组件事件传递。示例:

子组件

<template>
  <div>
    我是子组件{{name}}
    <button @click="ziupdata">按钮</button>
  </div>
</template>

<script setup>
  import {defineEmits} from 'vue'

  //自定义函数,父组件可以触发
  const em=defineEmits(['updata'])
  const ziupdata=()=>{
    em("updata",'我是子组件的值')
  }

</script>

父组件

<template>
  <div class="die">
    <h3>我是父组件</h3>
    <zi-hello @updata="updata"></zi-hello>
  </div>
</template>

<script setup>
  import ziHello from './ziHello'
  const updata = (data) => {
    console.log(data); //我是子组件的值
  }
</script>

4、defineExpose 组件暴露出自己的属性,在父组件中可以拿到。示例:

子组件

<template>
  <div>
    我是子组件
  </div>
</template>

<script setup>
  import {defineExpose,reactive,ref} from 'vue'
  let ziage=ref(18)
  let ziname=reactive({
    name:'xxxx'
  })
  //暴露出去的变量
  defineExpose({
    ziage,
    ziname
  })
</script>

父组件

<template>
  <div class="die">
    <h3 @click="isclick">我是父组件</h3>
    <zi-hello ref="zihello"></zi-hello>
  </div>
</template>

<script setup>
  import ziHello from './ziHello'
  import {ref} from 'vue'
  const zihello = ref()
  const isclick = () => {
    console.log('接收ref暴漏出来的值',zihello.value.ziage)
    console.log('接收reactive暴漏出来的值',zihello.value.ziname.name)
  }
</script>

注意点: 用setup语法糖时,getCurrentInstance线上可能会失效

uniapp开发:uniapp快速体验vue3.2setup语法糖,怎么使用怎么爽 目录 概要 拉开序幕的setup语法糖 生命周期钩子 ref函数与reactive函数对比 computed计算属性 监视(watch、watchEffect) 组件传值 provide/inject style样式使用v-bind绑定动态值 获取路由信息 全局API的转移 Composition API 的优势 关注我,不迷路 vue3.x相关会在将来持续更新… 概要 随着vue3.0的发布,不久后vue3.2紧接着发布了,现在uniapp也支持了vue3.2的编译。vue3.x的优点我在这里就不多说 阅读详情

相关推荐

Vue3 第十二章】组件注册与命名格式

组件注册与命名格式

前端知识分享喵 1662

Vue组件』全局注册与局部注册组件命名

组件注册的方式在Vue组件注册一般可以分为两种方式,全局注册与局部注册。同时组件的命名可以使用Pascal、Kebab两种命名方式。

Dpl0216的博客 2695

VUE3 注册全局组件

新建一个index.js

jieweiwujie的博客 283

vue3 - 组件注册组件通信(setup语法糖

vue3组件注册组件通信(setup语法糖

尽日寻春不见春,芒鞋踏遍陇头云。归来笑拈梅花嗅,春在枝头已十分。 1万+

Vue3.2 setup语法糖

提示:Vue3.2 版本开始才能使用语法糖!在 Vue3.0 中变量必须 return 出来,template中才能使用;而在 Vue3.2 中只需要在 script 标签上加上 setup 属性,无需 return,template 便可直接使用。

MDistance的博客 454

vue3.2 setup语法糖vue2vue3有哪些区别?

vue3中删除了vue2中的data函数,因此,vue3.0要在template中使用某些变量就必须在最后return出来,多次声明变量,不太方便,也不太友好。而在vue3.2版本之后,我们只需在script标签上加上setup属性,不需要再写return就可以直接在template中使用,写起代码就很流畅。哎,这就很棒!

jnfy的博客 1454

vue3.2 setup语法糖,你值得拥有

vue3中删除了vue2中的data函数,因此,vue3.0要在template中使用某些变量就必须在最后return出来,多次声明变量,不太方便,也不太友好。而在vue3.2版本之后,我们只需在script标签上加上setup属性,不需要再写return就可以直接在template中使用,写起代码就很流畅。哎,这就很棒!......

流绪@微梦 3866

一文掌握 vue3.2 setup 语法糖

Vue3.0 中变量必须 return 出来,template中才能使用;而在 Vue3.2 中只需要在 script 标签上加上 setup 属性,无需 return,template 便可直接使用,非常的香啊!setup 语法糖中可直接使用 await,不需要写 async , setup 会自动变成 async setup。提示:以下是本篇文章正文内容,下面案例可供参考。...

LoveSummer 2万+

vue3.2setup语法糖的详细使用说明

vue3.2setup语法糖的详细使用说明

可可爱爱的你吖的博客 5306

vue3.2版本setup语法糖

一、Vue3.0 里定义的变量、属性和方法必须 return 出来,中才能使用;这样会导致在页面上变量会出现很多次。vue3.2只需在script标签中添加setup,就可以帮助我们解决这个问题,无需再写return了。 二、不用写export default 、setup函数 三、组件只需import引入不用写components{}注册 四、不可以直接写name: 'xxx', 但默认name 是 组件名,如Home.vue name 就是Home。

头条:俊哥前端工程师,真正的大师永远怀揣着一颗学徒的心。 1993

Vue3.2 setup语法糖使用方法总结

Vue3.2 setup语法糖总结 文章目录Vue3.2 setup语法糖总结前言一、如何使用setup语法糖二、data数据的使用三、method方法的使用四、watchEffect的使用五、watch的使用六、computed计算属性的使用七、props父子传值的使用八、emit子父传值的使用九、获取子组件ref变量和defineExpose暴露十、路由useRoute和useRouter的使用十一、store仓库的使用十二、await 的支持十三、provide 和 inject 祖孙传值总结 前

许小叮当的博客 1985

vue3.2 setup 语法糖

Vue3.2 setup语法糖

weixin_43799793的博客 614

Vue3.2单文件组件setup语法糖总结

满满的干货,建议收藏慢慢看,可以当作Vue3.0的学习资料。 setupVue3.0后推出的语法糖,并且在Vue3.2版本进行了大更新,像写普通JS一样写vu...

知行合一,跬步致远 1万+

vue3.2 setup 语法糖汇总

作者 |玲小叮当来源 | https://segmentfault.com/a/1190000041849882前言提示:vue3.2 版本开始才能使用语法糖!在 Vue3.0中变量必须return出来,template中才能使用;而在 Vue3.2 中只需要在script标签上加上setup属性,无需return,templa...

web前端开发 624

Vue3.2setup语法糖

1、基本使用 在vue3.2中我们不再需要进行return,当使用<script setup>的时候,任何在<script setup>声明的顶层的绑定 (包括声明的变量,函数声明,以及 import 引入的内容) 都可以在模板中直接使用,这是因为在setup函数中,所有的ES模板都被认为是暴露給上下文的值,并包含在setup()返回对象中。 这里面的代码会被编译成组件setup()函数的内容,这也就意味着与普通的<script>只在组...

fanlao4203的博客 785

Vue3.2 中的 Setup 语法糖

vue3.2 到底更新了什么? 根据原文内容的更新的内容主要有以下 5 块: SSR:服务端渲染优化。@vue/server-renderer包加了一个ES模块创建,与Node.js解耦,使在非Node环境用@vue/serve-render做服务端渲染成为可能,比如(Workers、Service Workers) New SFC Features:新的单文件组件特性 Web Components:自定义 web 组件。这个我们平时很少用到,但是应该知道 Effect

weixin_42066070的博客 359
上一篇: vue3 ref获取dom节点
下一篇: 一文掌握 vue3.2 setup 语法糖
都挺好,刚刚好
博客等级 码龄7年 990粉丝 · 537原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值