非setup语法题 setup(props,{emit})

  1. export default defineComponent({
  2. props: {
  3. msg: String,
  4. sendNum:Number
  5. },
  6. setup(props,{emit}){
  7. //获取父组件数据,此时不是动态的,如果是对象则是。
  8. //如果需要动态则需要watch监听myNum
  9. let myNum = props.sendNum +1
  10. //触发父组件方法
  11. emit('say','dan啊')
  12. return{
  13. myNum,
  14. }
  15. }
  16. });
  17. </script>

setup语法题

defineProps 接受父组件数据(props)

不需要使用setup函数 props,emit怎么获取呢?

  1. <template>
  2. <div>
  3. <h2> 你好-我是肖鹤云</h2>
  4. <p>信息:{{ info}}</p>
  5. <p>{{ time }}</p>
  6. </div>
  7. </template>
  8. <script lang="ts" setup>
  9. //1.可以不引入defineProps
  10. //2.可以不写toRefs就可以直接使用
  11. //3.只需要defineProps({})即可
  12. import {defineProps ,toRefs} from 'vue'
  13. const props = defineProps({
  14. info:{
  15. type:String,
  16. default:'----'
  17. },
  18. time:{
  19. type:String,
  20. default:'0分钟'
  21. },
  22. })
  23. const {info,time } = toRefs(props)
  24. </script>

defineEmits 向父组件抛出事件($emit)

<script lang="ts" setup>
 import {defineEmits} from 'vue'
  //  使用defineEmits创建名称,接受一个数组
  let $myemit=defineEmits(['myAdd','myDel'])
  //触发父组件事件
  let hander1Click=():void=>{
    $myemit('myAdd','新增的数据')
  }

  let hander2Click=():void=>{
    $myemit('myDel','删除的数据')
  }
</script>