首页 > 其他分享 >Vue3组件通讯方式

Vue3组件通讯方式

时间:2024-10-12 17:46:36浏览次数:17  
标签:通讯 const vue pinia Vue3 组件 import ref

1.父子传参

个人概括:

《   其实vue3 的很多方法都跟vue2相似也几乎可以说是一样只不过调用方式不同,父子传参,之前父传子 子接受用的是props现在呢换成了defineProps,跟props用法差不多里面一个数据和它的类型然后就调用就可以了 》

import Zi from './views/Index.vue'       //子组件
import { ref } from "vue"

const fatherMessage = ref<string>("我是父组件传过来的值")

const sonMessage = ref<string>("")
父组件:↓

子组件:↓

interface Props {
    fatherMessage?: string,
}

//defineProps是一个函数,参数与vue2的props选项相同
defineProps<Props>()

效果图:

2.子父传参

父组件:↓

import Zi from './views/Index.vue'   //子组件
import { ref } from "vue"


const sonMessage = ref<string>("")
const getSonValue = (value: string) => {
  sonMessage.value = value
}

子组件:↓

import { ref} from "vue"

// 定义所要传给父组件的值
const value = ref<String>("我是子组件传给父组件的值")

// 使用defineEmits注册一个自定义事件
const emit = defineEmits(["getValue1"])

const btn = () => {
    emit('getValue1', value.value)
}
 

效果图:↓

3.Pinia

个人概括

《 其实pinia可以说是vuex的升级版用法跟函数的意思都差不多pinia更灵活了一点,相比vuex Pinia没有mutations函数,其余三个一模一样的,意思也一样,state是数据 getters是计算方法、actions是同步异步方法,个人感觉只要vue没问题,pinia看着就是通俗易懂的东西。

  1. pinia没有mutations,只有:state、getters、actions。
  2. pinia分模块不需要modules(之前vuex分模块需要modules)。
  3. pinia体积更小(性能更好)。
  4. pinia可以直接修改state数

1.main.js/ts引入

import { createPinia } from 'pinia'

app.use(createPinia())

2.在index.js/ts中写入

state就是你的数据

getters计算方法

actions就是同步异步方法,只要vue2学的还行,这些一看就能明白,包括上边的父子传参

import { defineStore } from 'pinia'

export const useStore = defineStore('storeId', {
  state: () => {
    return {
      num: 0,
    }
  },
  getters:{},
  actions:{}
})

3. 在组件中使用,其实跟vuex大概类似

<script setup>
import { useStore } from '../store'
const store = useStore();
</script>

标签:通讯,const,vue,pinia,Vue3,组件,import,ref
From: https://blog.csdn.net/wangjunyi6/article/details/142883119

相关文章

  • ROS理论与实践学习笔记——4 ROS的常用组件之TF坐标变换
        tf:TransFormFrame,坐标变换    坐标系:ROS中是通过坐标系统开标定物体的,确切的将是通过右手坐标系来标定的。    作用:在ROS中用于实现不同坐标系之间的点或向量的转换。    说明:在ROS中坐标变换最初对应的是tf,不过在hydro版本开......
  • vue3--vite环境变量的配置
    在开发环境、测试环境、生产环境需要请求不同的接口,对应不同的数据。因此,配置环境变量也尤为重要第一:为项目根目录开发、测试、生成(也可以加入预发布)环境创建.env文件.env.development.env.production.env.test第二:配置数据#变量必须以VITE_为前缀才能暴露给外部读取......
  • Vue3,setup()函数与<script setup>到底有什么本质区别?
    文章目录Vue3中`setup()`函数与`<scriptsetup>`的本质区别一、`setup()`函数的基础理解二、`<scriptsetup>`的基础理解三、`setup()`与`<scriptsetup>`的本质区别四、何时使用`setup()`,何时使用`<scriptsetup>`五、`<scriptsetup>`的一些特殊功能六、......
  • 华为手机通讯录联系人号码丢失,3个方法,让你不在烦恼
    在如今的移动社交时代,手机联系人的管理变得愈发重要,因为它不仅仅是电话号码的简单集合,更是我们与亲朋好友、同事业务联系的纽带。一旦失去了这些珍贵的联系信息,不仅可能导致沟通不畅,也会让我们感到无比焦虑。不用过多担心,本文将会提供一些方法,助你找回失去的通讯录号码。方......