当前位置: 首页 > article >正文

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 项目模板中看到的使用方式,也属于最常用的方式。


http://www.kler.cn/a/161865.html

相关文章:

  • C# 模拟浏览器自操作(自动化办公)
  • Java设计模式面试题及参考答案
  • 前端知识点---Javascript的对象(Javascript)
  • 【学习】【HTML】HTML、XML、XHTML
  • RS®SZM 倍频器
  • 程序员年薪百万秘籍(一)
  • 第 7 部分 — 增强 LLM 安全性的策略:数学和伦理框架
  • 微前端 -- wujie 预加载和原理 无界传参
  • 探索图像生成中的生成对抗网络 (GAN) 世界
  • 唯创知音WTV380语音芯片高品质声音播放提示IC在骨盆按摩器上的应用介绍
  • 1、命名空间、C++的复合类型、缺省参数
  • 精通Nginx(21)-大幅度提升性能优化方法
  • 石头剪刀布python
  • TCP通信
  • qt中sokect断开的几种情况
  • keil添加了头文件仍然报找不到头文件的原因
  • 4-Docker命令之docker stop
  • Apache Flink(九):集群基础环境搭建-Centos7节点配置
  • LeetCode 每日一题 Day 6(DFS+BFS)
  • ChatGPT在国内的使用限制,国内的ChatGPT替代工具
  • C#winform上下班打卡系统Demo
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(一)——创建Glue
  • 两个分数相加。
  • 持续集成交付CICD:GitLabCI 运行前后端项目
  • react经验6:使用SVG图片
  • Ray构建GPU隔离的机器学习平台