首页 > 其他分享 >Vue(15)——组合式API②

Vue(15)——组合式API②

时间:2024-09-22 20:23:04浏览次数:10  
标签:Vue 15 vue provide API 组件 import ref const

生命周期函数 

选项式组合式
beforeCreate/createdsetup
beforeMountonBeforeMount            
mountedonMouned
beforeUpdateonBeforeUpdate
updatedonUpdated
beforeUnmountonBeforeUnmount
unmountedonUnmounted

父子通信

父传子基本思想:

  1. 父组件中给子组件绑定属性
  2. 子组件内部通过props选项接收

子传父基本思想:

  1. 父组件中给子组件标签通过@绑定事件
  2. 子组件内部通过emit方法触发事件 

 

模版引用

通过ref标识获取真实的dom对象或者组件实例对象

  1. 调用ref函数生成一个ref对象
  2. 通过ref标识绑定ref对象到标签

 获取dom对象:

<script setup>
import { onMounted, ref } from 'vue';
import test from './components/test.vue';

const inp = ref(null)
//生命周期钩子
onMounted(()=>{
  console.log(inp.value);
  // inp.value.focus()
})
const clifn = () =>{
  inp.value.focus()
}
</script>

<template>
  <div>
    <input ref="inp" type="text">
    <button @click="clifn">点击聚焦</button>
  </div>
  <test></test>
</template>


获取组件:

默认情况下<script setup>语法糖下组件内部的属性和方法是不开放给父组件访问的,可以通过defineExpose编译宏指定哪些属性和方法允许访问

 


<script setup>
import { onMounted, ref } from 'vue';
import test from './components/test.vue';

const testref = ref(null)

const getref = () =>{
  console.log(testref);
  console.log(testref.value);
  
}
</script>

<template>
  
  <test ref="testref"></test>
  <button @click="getref">获取组件</button>

</template>

             

provide, inject

顶层组件向任意的底层组件传递数据和方法,实现跨组件通信

跨层传递普通数据:

1.顶层组件通过provide函数提供数据

2.底层组件通过inject函数获取数据

 

<script setup>
import { provide} from 'vue';
import centerCom from './components/center-com.vue';

provide('theme-color','pink')
</script>

<template>
<div>
  <h1>我是顶层组件</h1>
  <centerCom></centerCom>
</div>
</template>
<script setup>
import { inject } from 'vue';

const themecolor = inject('theme-color')
</script>

<template>
<div>
  <h3>我是底层组件{{ themecolor }}</h3>
</div>
</template>

 跨层传递响应式数据:

想要在子组件改变父组件定义的数据,只需要父组件使用provide提供函数,在子组件接收就行。

标签:Vue,15,vue,provide,API,组件,import,ref,const
From: https://blog.csdn.net/m0_74386799/article/details/142439002

相关文章

  • Vue(14)——组合式API①
    setup特点:执行实际比beforeCreate还要早,并且获取不到this<script>exportdefault{setup(){console.log('setup函数');},beforeCreate(){console.log('beforeCreate函数');}}</script>            在setup函数中......
  • vue如何挂载路由
            在Vue中,挂载路由并不是指一个直接的API调用或方法,而是一个过程,它涉及到将VueRouter实例与Vue应用的根实例进行关联。这个过程通常是在Vue应用的入口文件中完成的,比如main.js或app.js。1、安装VueRouter:        使用npm或yarn将VueRouter添加到你......
  • Tomcat CVE-2017-12615 靶场攻略
    漏洞描述当Tomcat运⾏在Windows操作系统时,且启⽤了HTTPPUT请求⽅法(例如,将readonly初始化参数由默认值设置为false),攻击者将有可能可通过精⼼构造的攻击请求数据包向服务器上传包含任意代的JSP⽂件,JSP⽂件中的恶意代码将能被服务器执⾏。导致服务器上的数据泄露或获取服务......
  • 基于SpringBoot+Vue+uniapp微信小程序的居住证申报系统的详细设计和实现
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我成功案例代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp微信小程序的私家车位共享系统的详细设计和实现
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我成功案例代码参考数据库参考源码获取前言......
  • Vue 指令和响应式系统
    一、指令1.什么是指令?指令是特殊的属性,用于在模板中对DOM进行操作。指令的前缀是v-,后面跟随具体的指令名称。Vue内置了一些常用的指令,如v-if、v-for、v-bind、v-on等。2.常用指令v-if:条件渲染,只有条件为真时才渲染该元素。<pv-if="isVisible">我是可见的</p>......
  • 基于Spring Boot的疫苗接种系统 计算机专业毕业设计源码32315
    摘 要预防预接种工作实行网络信息化管理,是我国免疫规划工作发展的需要。接种信息实行网络信息化不仅是预防接种工作步入了一个新的台阶,更重要的是解决了多年疫苗接种过程种,免疫接种剂次不清,难以全程有效接种的问题;同时各级政府卫生行政部门亦能通过平台可以及时了解本地区免......
  • 揭开 Vue 3 中大量使用 ref 的隐藏危机
    在Vue3中,ref 是用来创建响应式的引用,它能够追踪和管理单一的变量或对象。当代码中大量使用ref 时,虽然可以实现对各个状态或数据的精细控制,但也会带来一些问题和潜在影响。1. 大量使用ref 带来的问题1、代码冗长与维护成本高当一个组件中大量使用ref,每个状态都需要......
  • 浅谈在.Net Framework Winforms程序中调用 WinRT API
    浅谈在.NetFramework桌面应用中调用WinRTAPI【作者:张赐荣】在开发Windows程序时,我们经常会遇到需要调用系统功能的场景,比如文件操作、录音、摄像头管理等。在传统的桌面应用开发中,使用.NetFramework封装的Win32API**或者直接调用底层复杂的com接口来完成这些功能,......
  • 关于​​Vue学习笔记6中纯JavaScript实现的改进优化1
    0前言在 Vue学习笔记6:分别使用纯JavaScript和Vue的v-if指令来有条件地渲染网页元素_PurpleEndurer@5lcto的技术博客_51CTO博客的纯JavaScript实现有条件地渲染网页元素中,我们列举了苹果、桔子和葡萄3种水果,并使用3个<p>...</p>来对应,在实现显示用户选择的水果的showFruit函数中,......