<!-- 子组件名 comchild-->
<template>
<view class="content">
<text>{{msg}}</text>
<block v-for="(item,index) in mylist" :key="item.id">
<view class="">{{item.name}}</view>
</block>
<input type="text" v-model="inmsg" />
</view>
</template>
<script setup>
import {
watch,
ref,
inject
} from 'vue'
var msg = inject("msg");
var mylist = inject("mylist");
var f_f = inject("f_f");
var inmsg = ref('这是子传给父 初始值')
watch(inmsg, (newValue, oldValue) => {
f_f(newValue)
console.log(newValue)
})
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: #007AFF;
height: 400upx;
}
</style>
<!-- 父组件 -->
<!-- manifest.json 设置Vue3 -->
<template>
<view class="content">
<comchild></comchild>
<input type="text" v-model="msg" />
</view>
</template>
<script setup>
import {watch, ref,reactive, provide } from 'vue'
// 父传给子
var msg=ref('这是父传给子 初始值');
provide("msg",msg)
watch(msg,(newValue,oldValue)=>{
mylist[0].name=newValue
mylist[1].name=oldValue
console.log(newValue)
})
// 子传给父
var f_f=(value)=>{
msg.value=value
console.log(value)
}
provide("f_f",f_f)
var mylist=reactive([
{id:1,name:"xx1"},
{id:2,name:"xx2"},
{id:2,name:"xx3"}
])
provide("mylist",mylist)
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
</style>