Vue音乐--搜索页面03_热门搜索组件

本文介绍如何在Vue项目中创建热门搜索组件,包括从QQ音乐移动端网页抓取热门搜索关键词,显示前10个关键词并采用圆角边框布局。点击关键词后,该关键词将被关联到输入框中,实现双向数据绑定。详细步骤涉及搜索组件的数据获取、渲染和点击事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大概步骤:

在这里插入图片描述

目标效果

在这里插入图片描述


三、新建热门搜索关键词组件的数据获取和布局

  • 要点

    • QQ音乐移动端网页抓取热门搜索的关键词数据
    • 截取关键词数据数组的前10个
    • 对数据列表布局为圆角边框样式
    • 点击热门搜索关键词,关联到输入框中
  • (一)抓取热门搜索关键词数据

在这里插入图片描述
在这里插入图片描述
↓ api - ->search.js

import jsonp from '@/common/js/jsonp'	//引入jsonp模块
import {commonParams,object} from './config'	//引入公共hash和自定义回调名

//获取热门搜索关键词数据
export function getHotKey(){
	//自己判断截取出url前半段
	const urlfront = 'https://c.y.qq.com/splcloud/fcgi-bin/gethotkey.fcg'

	//把hash做成对象,es6创建对象并赋值,
	//hash获取不了,要手动输入所有,把对象分2类,固定和不固定
	//固定的hash写在变量js模块里, config.js
	const thehash = Object.assign({},commonParams,{
		notice: 0,
		platform: 'h5',
		needNewCode: 1,
	})
	//执行jsonp模块
	return jsonp(urlfront,thehash,object)
}

↓ SearchHotkey.vue

/**获取数据方法*****/
    _getHotKey(){
      getHotKey().then((res)=>{
        if(res.code === ERR_OK){
          this.hotkey = res.data.hotkey.slice(0,10)
          //使用slice截取关键词数据中的前10个
        }
      })
    },
  • (二)数据渲染进热门搜索组件布局

↓SearchHotkey.vue

<div class="search-hotkey">
	<h1>热门搜索</h1>
	<ul>
		<li @click="addQuery(item.k)" v-for="item of hotkey">
			{{item.k}}
		</li>
	</ul>
</div>
/*只展示部分*/
  .search-hotkey li{
    display: inline-block;	/*li横向排列*/
    height: 24px;
    line-height: 24px;
    border: 1px solid rgba(0,0,0,.6);
    border-radius: 99px;
    word-break: keep-all;
  }
  

在这里插入图片描述

  • (三)点击热门关键词关联输入框

↓ searchHotkey.vue
派发给父组件,因为引用输入框的是父组件

/****点击事件把点击的hotkey传去给输入框*******/
addQuery(item){
	this.$emit('addQuery',item)	//派发给父组件,因为引用输入框的是父组件
}

↓ search.vue
直接调用子组件输入框的方法

addQuery(item){
	//直接调用子组件输入框的方法
	this.$refs.searchbox.setQuery(item)
},

↓ searchBox.vue
修改双向数据绑定的值为点击的值

/******设置方法给父组件调用**********/
setQuery(item){
	this.query = item	//修改双向数据绑定的值为点击的值
},

在这里插入图片描述


项目来源:慕课网
如有建议和疑问可联系
QQ:1017386624
邮箱:1017386624@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值