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

vue3(笔记)2.0 生命周期函数.父子通信.ref以及模块引用.跨层级通信.v-model(基于defineModel)

---生命周期函数(组合式API)

示例代码(其他同理):

onMountend(()=>{
    close.log('11')
})

 ---父子通信

--父传子

--子传父

---ref与defineExpose进行模块引用

--ref(获取dom元素)-在vue3中很关键

--defineExpose (暴露组件数据和方法)

作用:对子组件的方法进行暴露

---跨层级通信(provide inject)

使用时先要导入对应函数provide  inject

传递数据:

                                                  message就是传入的数据了~

传递方法:

---defineOptions(定义Options API选项) 扩展

---v-model(基于defineModel)

原理:

原生的v-model示例代码(不推荐):

父组件:

 <ChannelSelect v-model="params.cate_id"></ChannelSelect>

子组件(代码片段):

<script setup>
// 父传子 接受v-model的值
defineProps({
    modelValue:{
        type:[Number,String]
    }
})

// 子传父的 值
const emit = defineEmits(['update:modelValue'])

</script>
<template>
    <!-- 手动接受v-model的值 修改和更新老爹的数据  $event为当前选中的值 -->
     <el-select 
     :modelValue="modelValue" 
     @update:modelValue="emit('update:modelValue',$event)"
     style="width: 200px;">
               ......
            </el-select>
</template>
使用(​​​​​​​defineModel函数)的v-model(推荐)

需要导入defineModel函数    v-model获取的值可全局修改

声明:无需再传递数据,父子组件可直接用v-model双向绑定传递数据

相关文章:

  • STM32-HAL库初始化时钟
  • leetcode第77题组合
  • 【Spring Boot 应用开发】-05 命令行参数
  • c语言、c++怎么将string类型数据转成int,怎么将int转成string
  • MySQL忽略大小写问题
  • 京东一面:为什么 IDEA 建议去掉 StringBuilder,而要使用 “+” 拼接字符串?
  • 前端怎么排查幽灵依赖
  • doris:Iceberg
  • python二级考试中会考到的第三方库
  • 【大模型LLM面试合集】分布式训练_张量并行
  • 视觉Transformer(ViT)解析:它们比CNN更好吗?
  • [python] 类
  • 李国杰院士 “七问” DeepSeek:深度剖析 AI 发展新态势
  • Gin框架从入门到实战:核心用法与最佳实践
  • 深入探索像ChatGPT这样的大语言模型
  • FastGPT 引申:常见 Rerank 实现方案
  • Unity打包到webgl鼠标图标大小不正确
  • leetcode 0018 四数之和-medium
  • 【linux】文件与目录命令 - uniq
  • SpringBoot接入DeepSeek(硅基流动版)+ 前端页面调试(WebSocket连接模式)
  • 做一个配送网站/seo优化网站的手段
  • 网站gif图标素材/百度竞价排名点击软件
  • 什么软件可以发布做网站/怎么做
  • 中小网站建设都有哪些方案/深圳seo优化排名优化
  • 昆山专业网站建设公司哪家好/seo怎么做
  • 网站的建设方面/百度推广官方电话