多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
```` <template> <div> <button @click="changeEvent">加{{count}}</button> <button @click="add">setup加{{num}}</button> <p>{{ user.age }}</p> <p>{{ username }}</p> <p>{{ changeUser }} 计算</p> <p>{{ user.reverseType }}</p> </div> </template> <script> import { ref, reactive, toRefs, computed, watchEffect, watch } from 'vue' export default { name: "App", data() { return { count: 0 } }, setup() { const num = ref(0) const user = reactive({ username: "徐徐", age: 30, type: "哎123", reverseType: computed(() => { return user.type.split('').reverse().join(''); }) }) // 会自动判断监听哪个 watchEffect(() => { // console.log(num); console.log(user.age, '触发监听'); }) // 单独监听 watch(num, (n, o) => { console.log('新Num', n); console.log('旧num:', o); }) // 多个监听 watch([num, user], (n, o) => { console.log(num, user); }) function add() { num.value++ // 需要 value user.age++ } return { num, add, user, ...toRefs(user) } }, watch: { // 可以监听到 setup 里的值 num(n) { console.log(n, "gaibian"); } }, computed: { changeUser() { return this.num + "改" } }, methods: { changeEvent() { this.count++ } } }; </script> ```