全局变量的几种实现方式

注:本文仅对这几种方式进行简短的阐述,作为记录。

我们在写代码时免不了要对一些变量进行一些存储,但有时这些变量或常量使用到的频率又非常高,不论从优化代码解决冗余还是少给自己添不必要的麻烦看,把这些重复的变量进行统一存储和管理是必要的。

1.公用模块

定义一个专用的模块,如在项目里common目录下建立一个heip.js的文件用来定义方法,然后在其他界面引入该模块或去该公用方法(可对不同的方法选择性进行引入)。

如:import {getToken} from "./global";

2.挂载Vue.prootype

将一些使用频率高的常量或方法,直接拓展到Vue.prototype上,每个Vue对象都会继承下来。然后在main.js中挂载。

import {jumpTo,isWx} from ‘./units/global‘;

Vue.prototype.jumpTo = jumpTo

Vue.prototype.isWx = isWx

这样的话就可以在其他界面直接调用就可以使用了。

3.globalData

小程序里的globalData概念,在APP上全局声明变量一次,会继承到全局所有界面。

如:赋值:getApp().globalData.text = ‘test‘;取值:console.log(getApp().globalData.text) // ‘test‘。

4.Vuex

vuex作为专为vue.js应用程序开发的状态管理模式,它采用集中存储管理应用的所有组件的状态。

实际使用:

  在根目录下新建store目录,在store目录下创建index.js定义状态值,然后在main.js挂载Vuex。

  main.js:

  imoprt store from ‘./store’

  

  new Vue({

  el: ‘#app‘,

   router,

  store,

  components: { App },

  template: ‘<App/>‘

  })

一次奥迪

原文地址:https://www.cnblogs.com/yangc6925/p/11684140.html

时间: 2024-10-21 14:19:50

全局变量的几种实现方式的相关文章

uni-app 全局变量的几种实现方式

公用模块 定义一个专用的模块,用来组织和管理这些全局的变量,在需要的页面引入. 注意这种方式只支持多个vue页面或多个nvue页面之间公用,vue和nvue之间不公用. 示例如下:在 uni-app 项目根目录下创建 common 目录,然后在 common 目录下新建 helper.js 用于定义公用的方法. 1 const websiteUrl = 'http://uniapp.dcloud.io'; 2 const now = Date.now || function () { 3 ret

VUE 全局变量的几种实现方式

最近在学习VUE.js 中间涉及到JS全局变量,与其说是VUE的全局变量,不如说是模块化JS开发的全局变量. 1.全局变量专用模块 就是以一个特定模块来组织管理这些全局量,需要引用的地方导入该模块便好. 全局变量专用模块 Global.vue <script type="text/javascript"> const colorList = [ '#F9F900', '#6FB7B7', '#9999CC', '#B766AD', '#B87070', '#FF8F59',

JavaScript声明全局变量的三种方式

JavaScript声明全局变量的三种方式 JS中声明全局变量主要分为显式声明或者隐式声明下面分别介绍. 声明方式一: 使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量.该方式即为显式声明详细如下: var test = 5; //全局变量 function a() { var cc=3; //局部变量 alert(test); } function b(){alert(test);} 声明方式二: 没有使用var,直接

1、打印二进制机器码,程序内存分析,大端序小端序,指针数组,数组指针,数组的三种访问方式,typedef,#if-0-#endif,求数组大小,括号表达式

 1.打印二进制机器码(分别表示32位的和64位的) #include <stdio.h> /*按照8位的长度打印一个数值*/ void dis8bit(char val) { int bit = 8; while(bit--) { if(1<<bit&val){ printf("1"); } else { printf("0"); } if(!(bit%4)) printf(" "); } putchar(1

定义c/c++全局变量/常量几种方法的区别(转载)

出自:http://www.cnblogs.com/yaozhongxiao/archive/2010/08/08/1795338.html 在讨论全局变量之前我们先要明白几个基本的概念:  1. 编译单元(模块): 在ide开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误 (link error)  因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用 gcc,makefile等工具在linux或者嵌入

自制Javascript分页插件,支持AJAX加载和URL带参跳转两种初始化方式,可用于同一页面的多个分页和不同页面的调用

闲话部分 最近闲着实在无聊,就做了点小东西练练手,由于原来一直在用AspNetPager进行分页,而且也进行了深度的定制与原有系统整合的也不错,不过毕竟是用别人的,想着看自己能试着做出来不能,后台的分页插件已经有比较成熟的了,那就自己试着写一个前台分页吧. 话不多说,先上效果图: 优点与缺点 来说说优缺点吧,首先AspNetPager是后台分页控件,所以在向客户端回传HTML文档之前生成HTML阶段 就会把分页代码生成完毕,然后回传,而JS是前端代码,就是HTML文档在服务器组织完毕往客户端传送

php 递归函数的三种实现方式

递归函数是我们常用到的一类函数,最基本的特点是函数自身调用自身,但必须在调用自身前有条件判断,否则无限无限调用下去.实现递归函数可以采取什么方式呢?本文列出了三种基本方式.理解其原来需要一定的基础知识水品,包括对全局变量,引用,静态变量的理解,也需对他们的作用范围有所理解.递归函数也是解决无限级分类的一个很好地技巧.如果对无限级分类感兴趣,请参照php利用递归函数实现无限级分类.我习惯套用通俗的话解释复杂的道理,您确实不明白请参见手册. 利用引用做参数 先不管引用做不做参数,必须先明白引用到底是

cookie 和 session的区别 &amp; 三种传值方式

1.session保存在服务器,客户端不知道其中的信息:cookie保存在客户端,服务器能够知道其中的信息. 2.session中保存的是对象,cookie中保存的是字符串. 3.session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到.而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的. 4.session以cookie为基础,session需要借助cookie才能正常工作,如果客户端完全禁止cookie

002-多线程-锁-同步锁-synchronized几种加锁方式、Java对象头和Monitor、Mutex Lock、JDK1.6对synchronized锁的优化实现

一.synchronized概述基本使用 为确保共享变量不会出现并发问题,通常会对修改共享变量的代码块用synchronized加锁,确保同一时刻只有一个线程在修改共享变量,从而避免并发问题. synchronized结论: 1.java5.0之前,协调线程间对共享对象的访问的机制只有synchronized和volatile,但是内置锁在功能上存在一些局限性,jdk5增加了Lock以及ReentrantLock. 2.java5.0,增加了一种新的机制:显式锁ReentrantLock,注意它