Demo.vue 859 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. <template>
  2. <h1>一个人的信息</h1>
  3. <h2>姓名:{{person.name}}</h2>
  4. <h2>年龄:{{person.age}}</h2>
  5. <button @click="test">测试触发一下Demo组件的Hello事件</button>
  6. </template>
  7. <script>
  8. import {reactive} from 'vue'
  9. export default {
  10. name: 'Demo',
  11. props:['msg','school'],
  12. emits:['hello'],
  13. setup(props,context){
  14. // console.log('---setup---',props)
  15. // console.log('---setup---',context)
  16. // console.log('---setup---',context.attrs) //相当与Vue2中的$attrs
  17. // console.log('---setup---',context.emit) //触发自定义事件的。
  18. console.log('---setup---',context.slots) //插槽
  19. //数据
  20. let person = reactive({
  21. name:'张三',
  22. age:18
  23. })
  24. //方法
  25. function test(){
  26. context.emit('hello',666)
  27. }
  28. //返回一个对象(常用)
  29. return {
  30. person,
  31. test
  32. }
  33. }
  34. }
  35. </script>