• vue设置全局变量:让你的数据无处不在!


    前言

    vue 开发中,如何设置全局变量是一个关键问题。本文将介绍多种方法,帮助大家轻松实现全局变量的共享,提升 vue 项目的开发效率。让我们一起来探索这些方法,为你的 vue 项目带来更好的开发体验。


    方法一:使用 Vue.prototype

    通过在 vue 的原型上定义属性,可以在所有组件中访问该属性。例如,我们可以在 main.js 文件中添加以下代码:

    main.js文件

    Vue.prototype.$globalVar = 'Hello World';
    
    • 1

    然后,在任何组件中,我们都可以通过 this.$globalVar 来访问该全局变量

    任意一个组件内

    <template>
      <div>
        {{this.$globalVar}}
      div>
    template>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    页面展示

    在这里插入图片描述


    方法二:使用 Vue.mixin

    通过混入(mixin)的方式,可以将一些公共的属性或方法混入到所有组件中。例如,我们可以在 main.js 文件中添加以下代码:

    main.js文件

    Vue.mixin({
        data() {
            return {
                globalVar: 'Hello World'
            };
        }
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    然后,在任何组件中,我们都可以通过 this.globalVar 来访问该全局变量。

    任意一个组件内

    <template>
      <div>
        {{this.globalVar}}
      div>
    template>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    页面展示

    在这里插入图片描述


    方法三:使用 Vue.observable

    通过 Vue.observable 方法,可以创建一个可响应的对象,该对象可以在所有组件中共享。例如,我们可以在 main.js 文件中添加以下代码:

    main.js文件

    const globalData = Vue.observable({
      globalVar: 'Hello World'
    });
    export default globalData;
    
    • 1
    • 2
    • 3
    • 4

    然后,在任何组件中,我们可以通过导入 globalData 并访问 globalData.globalVar 来访问该全局变量。

    任意一个组件内

    <template>
      <div>
        {{globalData.globalVar}}
      div>
    template>
    
    <script>
    import globalData from "@/main";
    export default {
      data() {
        return {
          globalData,
        };
      },
    };
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    页面展示

    在这里插入图片描述


    方法四:使用 Vuex

    vuexvue 的官方状态管理库,可以用于管理全局状态。通过在 vuex 中定义 state,可以在所有组件中访问该状态。例如,我们可以在 store.js 文件中添加以下代码:

    store/index.js文件

    import Vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(Vuex)
    export default new Vuex.Store({
      state: {
        globalVar: 'Hello World'
      },
      // ......
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    然后,在任何组件中,我们可以通过 this.$store.state.globalVar 来访问该全局变量。

    任意一个组件内

    <template>
      <div>
        {{this.$store.state.globalVar}}
      div>
    template>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    页面展示

    在这里插入图片描述


    方法五:使用 localStorage 或 sessionStorage

    通过将变量存储在 localStoragesessionStorage 中,可以在所有组件中共享该变量。例如,我们可以在某个组件中添加以下代码:

    a.vue文件

    <template>
      <div>div>
    template>
    <script>
    export default {
      mounted() {
        localStorage.setItem("globalVar", "Hello World");
      },
    };
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    然后,在其他组件中,我们可以通过 localStorage.getItem('globalVar') 来访问该全局变量。

    b.vue

    <template>
      <div>{{title}}div>
    template>
    
    <script>
    export default {
      data() {
        return {
          title: "",
        };
      },
      mounted() {
        const value = localStorage.getItem("globalVar");
        if (value) {
          this.title = value;
        }
      },
    };
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    页面展示

    在这里插入图片描述

  • 相关阅读:
    python操作windows桌面实现鼠标、键盘操作,python之pyautogui库文档详解
    计算机的错误计算(五十七)
    Week 7 CNN Architectures - LeNet-5、AlexNet、VGGNet、GoogLeNet、ResNet
    tomcat基础介绍
    JSD-2204-酷莎商城(后端)-Day17,18
    传统架构应用快速横向扩容PK容器!
    在python 深度学习Keras中计算神经网络集成模型
    interview: Tell Me About Yourself
    Linux环境下不安装DM数据库,编译dmPython
    system verilog rand randc constraint randomize
  • 原文地址:https://blog.csdn.net/Shids_/article/details/131418080