我们可以看到这个功能是十分强大的所以在开发时被广泛使用
但是官方没有提供任何有关vue使用的文档
而且我的项目中搜索框是以组件方式独立的,我想大多数的项目中也是这样的,都是以组件引入的方式来构成页面的
本文使用两个页面
本文基础为vue兄弟组件之间的数据传输,mounted生命周期,created生命周期
plugins: ['AMap.AutoComplete']
autoOptions: {
input: ''
},
auto: null,
其中auto是用于我们进行输入提示的接收变量,由于是new出的一个对象所以定义初始值为null
而autoOptions是我们要接收的input输入框的id对象所以在其中定义input接收值为空即可
import Vue from 'vue'
//兄弟组件之间进行通行
export default new Vue()
你没看错就两行
import bus from '@/eventBus/eventBus.js'
<el-input placeholder="请输入内容" v-model="input" :id="search_id">
<script>
import bus from '@/eventBus/eventBus.js'
export default {
data() {
return {
search_id: 'searchId',
input: ''
}
},
methods: {
sendId() {
bus.$emit('share_id', this.search_id)
}
},
mounted() {
this.sendId()
}
}
</script>
created() {
bus.$on('share_id', val => {
this.autoOptions.input = val
})
},
this.auto = new AMap.AutoComplete(this.autoOptions)
<script>
import bus from '@/eventBus/eventBus.js'
import AMapLoader from '@amap/amap-jsapi-loader'
export default {
data() {
return {
map: null,
autoOptions: {
input: ''
},
auto: null,
}
},
created() {
bus.$on('share_id', val => {
this.autoOptions.input = val
})
},
methods: {
initMap() {
AMapLoader.load({
key: '2c1c4affeb410923990fec54c5af721a', // 申请好的Web端开发者Key,首次调用 load 时必填
version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
plugins: [ 'AMap.AutoComplete'] // 需要使用的的插件列表,如比例尺'AMap.Scale'等
})
.then(AMap => {
this.map = new AMap.Map('container', {
resizeEnable: true,
//设置地图容器id
viewMode: '3D', //是否为3D地图模式
zoom: 10, //初始化地图级别
center: [121.473667, 31.230525] //初始化地图中心点位置
})
this.auto = new AMap.AutoComplete(this.autoOptions)
})
.catch(e => {
console.log(e)
})
}
},
mounted() {
//DOM初始化完成进行地图初始化
this.initMap()
}
}
</script>