如何让复用的组件内部代码随着切换多次执行呢?
App.vue 组件:有两个按钮,点击按钮下面 div 显示对应按钮中的文字
<template>
<button @click="changeData($event)">user1</button>
<button @click="changeData($event)">user2</button>
<User :name="data"></User>
</template>
<script setup>
import { ref } from 'vue';
import User from './components/user.vue';
let data = ref('')
function changeData(e) {
data.value = e.target.innerText
}
</script>
User.vue 组件:
<template>
<div> {{ name }} </div>
<!-- <div> {{ attrs.name }} </div> -->
</template>
<script setup>
import { useAttrs } from 'vue';
let attrs = useAttrs()
let name = attrs.name
console.log(name);
</script>
如果在 template 中直接使用 attrs.name
是没问题的,不会丢失响应式
如果使用变量 name 接收,因为组件内部代码只执行一次的缘故,就不能实现切换文字效果
如何才能让 User 组件内部的代码随着 button 点击多次执行呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.