vue3 provide与inject进行状态管理

导读:本篇文章讲解 vue3 provide与inject进行状态管理,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

vue3 provide与inject进行状态管理

一、数据仓库准备

在store–>新建index.js文件,作为仓库数据

  • 状态集中管理
  • 数据实现响应式
  • ref reactive—>对象中存储状态msg,age,counter
import {reactive} from 'vue'
const store={
	//数据
    state:reactive({
        msg:"Hello Word LLT"
    }),
    //方法
    updateMsg:function(){
        this.state.msg="你好 LLT"
    }
}
//如何在App组件通过provide提供
export default store

二、子组件准备

Hello.vue 文件

<template>
    <div>
        <p>{{store.state.msg}}</p>
        <button @click="updateMsg">改变msg</button>
    </div>
</template>

<script>
    export default{
        inject:['store'],
        methods:{
            updateMsg(){
                this.store.updateMsg();
            }
        },
    }
</script>

或者 用setup (推荐)

<script setup>
    import { inject } from 'vue';
    const store=inject(['store']);
    function updateMsg(){
        store.updateMsg();
    }
</script>

三、根组件使用(最终使用)

<script setup>
import Hello from './components/Hello.vue'
import store from "./store";//引入
import {provide } from 'vue'
provide('store',store)
</script>

<template>
	<Hello/>
</template>

provide 是父组件向子组件传递信息,即App.vue向Hello.vue传递信息
如果是单个可以用ref传递
provide(‘store’,ref(“张三”))
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107040.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!