大家好,又见面了,我是你们的朋友全栈君。
首先是一个坑,在IE和360浏览器中页面刷新会执行一遍input事件,在其他浏览器就没有,所以会有很大问题,导致做的自动补全列表直接显示,刷新页面也不能隐藏。
<input type="text" class="comHeaderBanSearchSearch fl" placeholder="请输入关键字查询" v-model="inputVal" @keyup.enter="searchBtn">
//在data中 我直接把inputVal的值拿到路由的值 这样页面一进来就不用走watch了 这样就避免了在created中赋值 是inputVal变化从而进行监听 还会走自动补全的函数了
data(){
return {
inputVal:this.$route.query.searchWord?this.$route.query.searchWord:'',
}
}
//监听 watch中
watch:{
inputVal(newVal,oldVal){
this.inputChange();
},
},
methods:{
/*自动补全数据 methods*/
inputChange() {
if(this.inputVal!=''){
getsuggestAPI({
term: this.inputVal,
num: 8
}).then(res => {
if (res.data.status) {
this.suggest = res.data.data;
this.issuggest=true;
this.$store.commit('suggest',this.issuggest)
}
})
}else{
this.suggest=[];
this.issuggest=false;
this.$store.commit('suggest',this.issuggest)
}
},
},
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133646.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...