Vue3.0全局变量以及全局方法问题
背景
Vue3.0想把有些公共的变量及方法放到一个单独的js文件中,免得每个组件都要声明一次。
环境
Vue3.0
@arcgis/core 4.24.7
解决方案
方法一,只针对全局变量:
main.js
1 const app = createApp(App) 2 app.config.globalProperties.$gisServerAddr = 'http://192.168.1.127:6080/arcgis/rest/services/' 3 app.use(store).use(router).use(ElementPlus).mount('#app')
.vue文件引用
1 import {getCurrentInstance } from 'vue' 2 const { 3 appContext: { 4 config: { globalProperties } 5 } 6 } = getCurrentInstance() 7 const queryUrl = 8 globalProperties.$gisServerAddr + 'wjwf/patch_2000/FeatureServer/0' //取到全局变量
方法二,全局变量和全局方法都可用(推荐):
①全局变量
在src/assets文件夹下新建utils/gisUrl.js
gisUrl.js
1 // 测试环境 2 const serviceUrl = { 3 wj2000Url: 'http://192.168.1.127:6080/arcgis/rest/services/wjwf/wjwf2000new/MapServer/tile/{level}/{row}/{col}?blankTile=false', 4 patchesLayerUrl: 'http://192.168.1.127:6080/arcgis/rest/services/wjwf/patch_2000/FeatureServer/0', 5 } 6 7 export default serviceUrl
.vue文件引用即可
1 import serviceUrl from '@/assets/utils/gisUrls'
②方法跟变量类似,但是方法一般会有很多,所以export的方式就不用export default的方式了:
在src/assets文件夹下新建utils/publicModules.js
// 公共的数据和方法 import Search from '@arcgis/core/widgets/Search' const addSearchWidget = (view, layer, baseInfos, zoom) => { const searchWidget = new Search({ view: view, container: 'searchWidget', includeDefaultSources: false, sources: [ { layer: layer, name: '网格', placeholder: '输入网格编号', outFields: ['*'], searchFields: ['wgid'], suggestionTemplate: '网格编号:{wgid}', locationEnabled: false, displayField: 'wgid', exactMatch: false, maxResults: 6, minSuggestCharacters: 0, maxSuggestions: 10, resultGraphicEnabled: true, suggestionsEnabled: true // zoomScale: 1 } ] }) searchWidget.on('select-result', function (event) { view.goTo({ target: event.result.feature, zoom: zoom }) }) // Add the search widget to the top right corner of the view view.ui.add(searchWidget, { position: 'manual' }) } export { addSearchWidget }
.vue文件调用
1 import { addSearchWidget }f rom '@/assets/utils/publicModules'
参考网址
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!