阅读 338

vue3 新实验属性 <script setup> 使用中的疑惑

问题描述

采用最新的<script setup>语法编码时,发现父组件调用子组件属性或方法报错,采用原来的旧语法则可以成功调用,有没有大佬能告知是不是BUG?

父组件

<template>
  <msg ref="msgRef"></msg>
  <msg1 ref="msgRef1"></msg1>
  <div @click="editMsg">点击修改Msg</div>
  <div @click="editMsg1">点击修改Msg</div>
</template>

<script setup>
import { ref } from 'vue'
import msg from './Test1.vue'
import msg1 from './Test2.vue'
defineProps({
  msg: String,
})

const count = ref(0)
const msgRef = ref(null)
const msgRef1 = ref(null)
function editMsg() {
  msgRef.value.setMsg('123456')
}
function editMsg1() {
  msgRef1.value.setMsg('123456')
}
</script>



<style scoped>
a {
  color: #42b983;
}
</style>复制代码

子组件test1

此处采用<script setup>语法

<template>
  <div>
    {{ state.msg }}
  </div>
</template>
<script setup>
import { reactive } from 'vue'

const state = reactive({
  msg: '',
})
function setMsg(msg) {
  state.msg = msg
}
</script>复制代码

子组件test2

此处采用旧语法

<template>
  <div>
    {{ state.msg }}
  </div>
</template>
<script>
import { reactive } from 'vue'

export default {
  setup(props, { emit }) {
    const state = reactive({
      msg: '',
    })
    function setMsg(msg) {
      state.msg = msg
    }
    return {
      state,
      setMsg,
    }
  },
}
</script>


作者:指尖的代码
链接:https://juejin.cn/post/7012915514473201700

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐