vue3 ref()

这篇具有很好参考价值的文章主要介绍了vue3 ref()。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通常我们在获取子组件的数据和方法的操作

解决  ref 对子组件进行数据的获取以及方法的触发

不同  需要在子组件 通过defineExpose进行方法的,数据的 暴露

案例 

 父组件



<template>
  <div>
    <el-button @click="setValueOfName()"> 点击我进行数据的测试与更新 </el-button>
    <el-button @click="setDog()"> 点击我进行数据的测试与更新 </el-button>
    姓名:  {{xm}}
    <el-button>4444444</el-button>
     <input v-model="xm">
  <component :is="propvues"    :name=name></component>
  <propvues ref="getSonFunction" @sentValue = getavlue(event) :name=name > 
   <template  v-slot:A = "peoperNmae">
    <bution>{{peoperNmae.peoperNmae}}A</bution>
  </template>
  <template  v-slot:B>
    <bution>BJ</bution>
  </template>
  </propvues>

  <button name="lllll"  @click="getSon()"> jjjkkkkkk </button>
    {{parent}}
  
  </div>
  <!-- <router- -->
  {{injectvalue}}
</template>

<script setup lang="ts">
import axios from './axios/index'
import {ref,provide,onMounted,inject,watch,reactive,computed} from 'vue'
// const  Provide = 
const  injectvalue = inject('names')
const  getSonFunction = ref()
const peoper =  ref<T>("人")
const myx =  ref('张')
const mym = ref("三")
const xm =  ref(computed(()=>{
   return myx.value +  mym.value
}))
const dog =  reactive({
   name:"旺财",
   age:30,
   sex:"男"
})
let parent = "法拉利"
let name = '张三洗头爱飘柔'
import HelloWorld from './components/HelloWorld.vue'
import propvues from './components/props.vue'
//通过自定义事件获取子组件的数据 子传递父亲
const getavlue = function(event){
 console.log("event",event)
}
// dog
// watch(dog,(newValue,oldValue)=> {
//         console.log(newValue)
//         console.log(oldValue)
// },{
//    deep:true,
//    immediate:true,
// }
// )
watch(()=> dog.age ,(newValue,oldValue)=> {
        console.log(newValue)
        console.log(oldValue)
},{
   deep:true,
   immediate:true,
}
)
watch(peoper,(oldvalue,newValue)=> {
     console.log(oldvalue,"oldvalue")
     console.log(newValue,"newValue")
     
})
watch([peoper],(oldvalue,newValue)=> {
     console.log(oldvalue,"oldvalue")
     console.log(newValue,"newValue")
     
})

// 
const setDog = function():void{
    dog.age = 20 
}
// dog

const setValueOfName = function(){
  peoper.value ="ididiidppppppp"
}
const getUserName  = function() {
  axios({
      url:'',
      methods:'post',
      data:{
           name:"张",
           value:'kdlvfl'
      }
  })
}
// 挂载完毕进行获取数据的请求
onMounted(()=>{
    getUserName()
    provide("parent",parent)
})
//通过ref获取子组件的数据 父亲传子
const getSon = function(){
  console.log("开始获取父组件的事件")
  console.log(getSonFunction.value.myserver,">>>>>>>")
      getSonFunction.value.myserver()
}
</script>
<style scoped>
.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
  transition: filter 300ms;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}
</style>

子组件文章来源地址https://www.toymoban.com/news/detail-647930.html

<template>
  <slot name="A" :peoperNmae=peoperNmae></slot>
  <slot name="B"></slot>
   
    
</template>
<script setup lang="ts">
import {inject,provide} from 'vue'
const $emit = defineEmits(['sentValue'])
const props = defineProps<{
  name:{type:String}
}>()
const peoperNmae  = "子组件的slot数据"
const getInject   =  inject('parent')
const names = 'llllllllhjhhjjjs'
provide('names',names)

const myserver = function(){
     console.log("创建的事件被调用")
}
const sentValue  = function(){
    console.log("已经被触发创建当前事件")
     // 第一个为创建事件的方法,第二个为传递事件的 参数
      $emit('sentValue',)
}
// 父组件获取子组件的数据需要进行抛出才能获取
defineExpose({
       myserver
})
</script>

到了这里,关于vue3 ref()的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端技术】Vue3 01:初识 Vue.js

    Vue 可以说是非常流行了,至少在国内是这样,他是个轻量级的 JavaScript 框架,非常适合构建大型和中小型的 Web 应用程序,如果想和前端打交道,应该绕不过这个框架吧。 目录 1 Vue.js 介绍 2  IDE 选择 2.1 vscode 2.2 WebStorm 2.3 Eclipse 3  创建 Vue 应用 3.1 本地脚手架创建 ① 安装

    2024年02月02日
    浏览(47)
  • 前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(47)
  • 前端HTML、CSS、JS、VUE3 汇总

    学习https://developer.mozilla.org/zh-CN/docs/Learn/CSS 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 提示:这里可以添加本文要记录的大概内容: 学习路线 知识定位 HTML基础 标签、表格、表单、

    2024年02月13日
    浏览(40)
  • 前端2023最全面试题(javaScript、typeScript、vue2、vue3、html、css、uniapp、webpack、vite、react)

    答案:JavaScript中的闭包是一种函数,它有权访问其词法环境的变量和其它函数。这意味着,即使其包含它的函数已经执行完毕,其词法环境仍然存在,因此可以访问其作用域内的变量。 答案:回调函数是在某个特定事件之后执行的函数。在JavaScript中,通常使用回调函数来处

    2024年02月06日
    浏览(44)
  • 【前端vue升级】vue2+js+elementUI升级为vue3+ts+elementUI plus

    gogo code 是一个基于 AST (源代码的抽象语法结构树状表现形式)的 JavaScript/Typescript/HTML 代码转换工具,可以用它来构建一个代码转换程序来帮助自动化完成如框架升级、代码重构、多平台转换等工作。 当前 GoGoCode 支持解析和操作如下类型的代码: ○JavaScript(JSX) ○Typescript

    2024年02月12日
    浏览(40)
  • vue3创建项目报错Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_ut

    报错信息: Vue.js - The Progressive JavaScript Framework TypeError: (0 , import_node_util.parseArgs) is not a function     at init (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_modulescreate-vueoutfile.cjs:4481:72)     at Object.anonymous (C:UsersAdministratorAppDataLocalnpm-cache_npx2f7e7bff16d1c534node_module

    2024年04月10日
    浏览(117)
  • Vue3:ref(‘ ‘)、ref(null)与ref()

    今天在分析项目源码的时候偶然发现之前的程序员在通过ref获取子组件的方法的时候,总是喜欢用ref(null),什么意思呢 就是我引用了一个组件,并且想要使用组件内的value,那么常规操作就是 import 组件名 from \\\'组件的路径\\\' ,然后再在 template 模板中加上组件的标签,即 组件

    2024年02月14日
    浏览(30)
  • vue3 ref()

    通常我们在获取子组件的数据和方法的操作 解决  ref 对子组件进行数据的获取以及方法的触发 不同  需要在子组件 通过defineExpose进行方法的,数据的 暴露 案例   父组件 子组件

    2024年02月13日
    浏览(28)
  • vue3使用$refs

    一、说明 vue3中访问$refs绑定的组件的属性或者方法,我们会使用$refs。但是Vue3不同于Vue2,在 Vue3的setup中无法访问到this,使用getCurrentInstance方法 二、使用 二、效果

    2024年02月07日
    浏览(30)
  • 服务端使用ASP.NET Core SignalR与Vue3(TypeScript与JavaScript)前端建立通信(以进度条为例)

    1. ASP.NET Core           ASP.NET Core 是一个跨平台、高性能及开源的框架,用于生成基于云且连接互联网的新式应用程式。 官方文档:ASP.NET documentation | Microsoft Learn  2.  ASP.NET Core SignalR         ASP.NET Core SignalR 是开源库,用于服务端与客户端建立实时通信,可以自动管理连接

    2024年02月06日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包