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

Vue3组件通讯方式

时间:2024-10-12 17:46:36浏览次数:10  
标签:通讯 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

相关文章

  • 推荐一款支持Vue3的管理系统模版:Vue-Vben-Admin
    近年来,随着前端技术的飞速发展,各类后台管理系统框架层出不穷。Vue作为热门的前端框架,也有许多优秀的后台模板涌现。而Vue-Vben-Admin,凭借其高效、灵活的架构设计和完善的功能体系,成为了许多前端开发者的不二选择。其GithubStar达到了24K之多,可见其受欢迎程度。本文将详细介绍V......
  • ROS理论与实践学习笔记——4 ROS的常用组件之TF坐标变换
        tf:TransFormFrame,坐标变换    坐标系:ROS中是通过坐标系统开标定物体的,确切的将是通过右手坐标系来标定的。    作用:在ROS中用于实现不同坐标系之间的点或向量的转换。    说明:在ROS中坐标变换最初对应的是tf,不过在hydro版本开......
  • JavaWeb三大组件之Servlet
    1.Servlet一、Servlet介绍1、概念Servlet(ServerApplet)是JavaServlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。2、实现过程1.客户端发送请求至服务器端;2.服务器......
  • 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个方法,让你不在烦恼
    在如今的移动社交时代,手机联系人的管理变得愈发重要,因为它不仅仅是电话号码的简单集合,更是我们与亲朋好友、同事业务联系的纽带。一旦失去了这些珍贵的联系信息,不仅可能导致沟通不畅,也会让我们感到无比焦虑。不用过多担心,本文将会提供一些方法,助你找回失去的通讯录号码。方......
  • Flutter可滚动组件(1):Sliver
    一、常见滚定组件Flutter提供了多种滚动组件,可以用于处理各种滚动效果。Sliver的子组件都能滚动,但并不是所有能滚动的组件都是Sliver子组件。比如,ListView和Grid就不是Sliver子组件。重要说3遍ListView和Grid就不是Sliver子组件。ListView和Grid就不是Sliver子组件。......
  • Flutter可滚动组件(5):PageView与页面缓存
    一、PageView如果要实现页面切换和Tab布局,我们可以使用PageView组件。需要注意,PageView是一个非常重要的组件,因为在移动端开发中很常用,比如大多数App都包含Tab换页效果、图片轮动以及抖音上下滑页切换视频功能等等,这些都可以通过PageView轻松实现。PageView({Key?......
  • Flutter可滚动组件(4):GridView
    网格布局是一种常见的布局类型,GridView组件正是实现了网格布局的组件,下面重点介绍一下它的用法。一、默认构造函数GridView可以构建一个二维网格列表,其默认构造函数定义如下:GridView({Key?key,AxisscrollDirection=Axis.vertical,boolreverse=false,......
  • Flutter可滚动组件(3):滚动监听及控制
    前一篇博客介绍了Flutter中常用的可滚动组件,也说过可以用ScrollController来控制可滚动组件的滚动位置,本节先介绍一下ScrollController,然后以ListView为例,展示一下ScrollController的具体用法。最后,再介绍一下路由切换时如何来保存滚动位置。一、ScrollControllerScrollContro......