Recently, while learning VUE.js, JS global variables are involved. It is not so much the global variables of VUE, but rather the global variables of modular JS development.
1. Special module for global variables
uses a specific module to organize and manage these global variables. Just import the module where needed.
Special module for global variables Global.vue
<script type="text/javascript"> const colorList = [ '#F9F900', '#6FB7B7', '#9999CC', '#B766AD', '#B87070', '#FF8F59', '#FFAF60', '#FFDC35', '#FFFF37', '#B7FF4A', '#28FF28', '#1AFD9C', '#00FFFF', '#2894FF', '#6A6AFF', '#BE77FF', '#FF77FF', '#FF79BC', '#FF2D2D', '#ADADAD' ] const colorListLength = 20 function getRandColor () { var tem = Math.round(Math.random() * colorListLength) return colorList[tem] } export default { colorList, colorListLength, getRandColor } </script>
The variables in the module are exposed through export. When they need to be used elsewhere, just introduce the module global.
Modules that need to use global variables html5.vue
<template> <ul> <template v-for="item in mainList"> <div class="projectItem" :style="'box-shadow:1px 1px 10px '+ getColor()"> <router-link :to="'project/'+item.id"> ![](item.img) <span>{{item.title}}</span> </router-link> </div> </template> </ul> </template> <script type="text/javascript"> import global_ from 'components/tool/Global' export default { data () { return { getColor: global_.getRandColor, mainList: [ { id: 1, img: require('../../assets/rankIcon.png'), title: '登录界面' }, { id: 2, img: require('../../assets/rankIndex.png'), title: '主页' } ] } } } </script> <style scoped type="text/css"> .projectItem { margin: 5px; width: 200px; height: 120px; /*border:1px soild;*/ box-shadow: 1px 1px 10px; } .projectItem a { min-width: 200px; } .projectItem a span { text-align: center; display: block; } </style>
2. The global variable module is mounted in Vue.prototype.
Global.js is the same as above. Add the following code to main.js at the program entrance.
import global_ from './components/tool/Global' Vue.prototype.GLOBAL = global_
After mounting, there is no need to import the global module at the module that needs to reference the global variable. Directly You can quote it with this, as follows:
<script type="text/javascript"> export default { data () { return { getColor: this.GLOBAL.getRandColor, mainList: [ { id: 1, img: require('../../assets/rankIcon.png'), title: '登录界面' }, { id: 2, img: require('../../assets/rankIndex.png'), title: '主页' } ] } } } </script>
3. Use VUEX
Vuex is a state management mode specially developed for Vue.js applications. It uses centralized storage to manage the state of all components of the application. Therefore, global variables can be stored. Because Vuex is a bit cumbersome, it feels like overkill. I don't think it's necessary.
The above is the detailed content of Detailed explanation on several methods of defining global variables in VUE. For more information, please follow other related articles on the PHP Chinese website!