vue3 的 setup 使用(两种方式)

11 篇文章 1 订阅

第一种方式 : defineComponent ref

<script lang="ts">
	import { defineComponent,ref }  from 'vue';
	export default defineComponent({
	   name: 'App',
	   setup() {
	     const girls=ref(['大脚','小脚','高的'])
	     const selGirls=ref('')
	     const selgirlsFunction=(i: number)=>{
	       selGirls.value=girls.value[i]
	     }
	
	     return{
	       girls,
	       selGirls,
	       selgirlsFunction
	     }
	   },
	})

<script>
<template>
  <button 
    v-for="(item ,i) in girls" :key="i"
    @click="selgirlsFunction(i)"
  >{{i+1}}:{{item}}</button>
  <div>
    选择【{{selGirls}}】为你服务
  </div>
</template>

第二种:reactive() toRefs() (建议使用这一种)

import {  reactive,toRefs } from 'vue';
<script lang="ts">
interface DataProps{
  girls:string[],
  selGirls:string,
  selgirlsFunction:(i:number)=> void
}
export default {
  name: 'App',
  setup() {
    const data:DataProps=reactive({
      girls:['大脚','小脚','高的'],
      selGirls:'',
      selgirlsFunction:(i: number)=>{
        data.selGirls=data.girls[i]
      }
    })
    const refData=toRefs(data)

    return{
      ...refData
    }
  },
}
<script>
<template>
  <div>欢迎光临!</div>
  <div>请问需要什么服务?</div>
  <button 
    v-for="(item ,i) in girls" :key="i"
    @click="selgirlsFunction(i)"
  >{{i+1}}:{{item}}</button>
  <div>
    选择【{{selGirls}}】为你服务
  </div>
</template>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值