VueJs中setup的使用(下)

本文详细探讨了VueJs中`setup`函数的使用,包括如何接收和修改父组件传递的值。在`setup`中,父组件通过属性向子组件传递数据,子组件需通过`props`接收并处理。同时,介绍了如何在`setup`中定义响应式变量和函数,以及`setup`的第二个参数`context`的用途,包括`context.props`、`context.emit`和`context.slots`。文章总结了在组合式API与选项式API中处理父子组件通信的不同方式,强调了响应式处理和避免解构`context`对象的重要性。
摘要由CSDN通过智能技术生成

fbbe262827ab83c50a88fb5798862a3b.png

前言

Vue当中,父组件想要向子组件传值,是通过在父组件标签上通过自定义属性实现的,而在子组件中是通过props进行接收

Vue2.0里面,在子组件中的选项式API配置项选项中props进行接收就可以了的,在子组件中的模板中可以直接使用

但在Vue3里面与Vue2.0存在一些差异,这个主要是针对组合式APIsetup函数

01

534c25067f2c1e9ef516454bd7352455.png

setup函数接收第一个参数props

setup函数的第一个参数是接收父组件传递过来的props,这个setup函数的props是响应式的,并且会在传入的新的props时同步更新

如下是父组件的数据

<script setup>
import  Comp  from "./Comp.vue"
import { ref } from 'vue'
const name = "https://coder.itclan.cn"
</script>

<template>
  <Comp :name="name" />
</template>

如下是子组件Comp.vue

export default {
    props: {
        name
    },
    setup(props) {
        console.log(props.name);
    }
}

在模板中渲染

<template>
  <h1>{
   {name}}</h1>
</template>

那如何去修改模板中的数据呢,这个与Vue2.0绑定事件一样,在模板中,通过v-on@进行绑定,函数则通过function定义在setup里面,同时返回出去

<template>
  <h1>{
   {name}}</h1>
  <button @click="handleChange">修改</button>
</template>

对应的js

<script>
 import { ref } from 'vue'
 export default {
   props: {    // 必须要声明接收才可以,否则页面数据不会显示
     name
   },
   setup(props){
     console.log(props.name);
     let name = ref(props.name);   // 相当于是对props传递过来的数据做了一份拷贝
     function handleChange() {
        console.log(name.value);
        name.value = "川川"
     }
     return {
       name,
       handleChange
     }
   }
 }
</script>

注意事项

[1]. 想要修改父组件传递过来的props值,接收到的props.name必须要使用ref进行响应式处理,否则的话,修改name

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值