vue3日常知识点学习归纳

1,父子组件传递:

父组件传递参数

<template>
    <div>
        <!-- 子组件 参数:num 、nums -->
        <child :num="nums.num" :doubleNum="nums.doubleNum" @increase="handleIncrease"></child>
    </div>
</template>

<script setup lang="ts">
 import child from './child.vue';
  import { ref,reactive } from 'vue';
  // 对象默认
  const nums = reactive({
    num: 0,
    doubleNum: 0
  });
  // 点击事件
  const handleIncrease = () => {
    // 每次+1
    nums.num++
    // 每次+2
    nums.doubleNum += 2
  };
</script>

子组件接收参数

defineEmits: defineEmits() 宏仅限于 setup 语法糖 使用,用来声明组件要触发的事件。

<template>
    <div>
        <span>点击次数:{
  { props.num }}</span><br/>
        <span>双倍次数:{
  { props.doubleNum }}</span><br/>
        <el-button @click="handelClick">点击</el-button>
    </div>
</template>

<script setup lang="ts">
  import { ref } from 'vue';
  // 声明组件要触发的事件   子传父之前触发
  const emits = defineEmits(['increase']);
  // 声明接收参数
  const props = defineProps({
    num: String,
    doubleNum: String
  });
  //  点击事件  触发子传父
  const handelClick = () => {
    console.log('触发子组件点击')
    // 触发父组件事件
    emits('increase')
  };
</script>

 上是子组件 

父组件接收触发:

<template>
    <div>
        <!-- 子组件 触发事件:handleIncrease -->
        <child @increase="handleIncrease"></child>
        <br />
        我是父组件,我接收到的参数:<span v-if="data.name">姓名:{
  {data.name}}</span> <span v-if="data.age">, 年龄:{
  {data.age}}</span>
    </div>
</template>

<script setup lang="ts">
 import child from './child.vue';
  import { ref,reactive } from 'vue';
  // 接收对象封装
  const data = reactive({
    name: '',
    age: ''
  });
  // 点击事件
  const handleIncrease = (val : any) => {
    data.name = val.name
    data.age = val.age
  };
</script>

父组件小改变特性:

<template>
    <div>
        <!-- 子组件 参数:对象 -->
        <child v-bind="nums" @increase="handleIncrease"></child>
    </div>
</template>

这实际上等价于:

<template>
    <div>
        <!-- 子组件 参数:num 、nums -->
        <child :num="nums.num" :doubleNum="nums.doubleNum" @increase="handleIncrease"></child>
    </div>
</template>

 defineExpose 方式(常用)

概述: 这是我在 clone 项目模板中看到的使用方式,也属于最常用的方式。

相关推荐

  1. Vue基础知识梳理总结归纳

    2023-12-10 23:30:08       48 阅读
  2. vue3的使用和知识

    2023-12-10 23:30:08       38 阅读
  3. vue3知识补充第二节

    2023-12-10 23:30:08       14 阅读
  4. 总结vue3 的一些知识:MySQL 排序

    2023-12-10 23:30:08       41 阅读
  5. Vue3前端 响应式数据 知识

    2023-12-10 23:30:08       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-10 23:30:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-10 23:30:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-10 23:30:08       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-10 23:30:08       20 阅读

热门阅读

  1. 利用strace探测cp命令一次拷多少字节

    2023-12-10 23:30:08       35 阅读
  2. 基于Html+腾讯云播SDK开发的m3u8播放器

    2023-12-10 23:30:08       41 阅读
  3. C++ Qt开发:使用关联容器类

    2023-12-10 23:30:08       33 阅读
  4. 【数据结构/C++】二分查找

    2023-12-10 23:30:08       36 阅读
  5. idea连接Hbase卡住,没有输出

    2023-12-10 23:30:08       38 阅读
  6. ES6中的Set

    2023-12-10 23:30:08       37 阅读
  7. LinuxBasicsForHackers笔记 --添加和删除软件

    2023-12-10 23:30:08       32 阅读
  8. Qt 通过命令行编译程序

    2023-12-10 23:30:08       41 阅读
  9. qt5图形视频框架

    2023-12-10 23:30:08       36 阅读
  10. Linux指令——scp:传输文件

    2023-12-10 23:30:08       43 阅读
  11. kafka

    2023-12-10 23:30:08       40 阅读
  12. LeetCode 76. 最小覆盖子串 滑动窗口框架

    2023-12-10 23:30:08       43 阅读
  13. python函数

    2023-12-10 23:30:08       42 阅读
  14. Python大数据之Python进阶(三)多进程的使用

    2023-12-10 23:30:08       39 阅读