当前位置: 首页 > news >正文

建立网站站点的目的/网站建站方式有哪些

建立网站站点的目的,网站建站方式有哪些,wordpress进度条插件,名聚优品一家只做正品的网站实现搜索功能:第一部分 从本节开始,我们将实现我们的食谱小应用的搜索功能! 首先我们先看一下API文章,用什么样的方法来获取全部的食谱的 所以我们按照这个文章先写一个函数,这个函数主要是一个AJAX请求,然…

实现搜索功能:第一部分

从本节开始,我们将实现我们的食谱小应用的搜索功能!

  • 首先我们先看一下API文章,用什么样的方法来获取全部的食谱的

在这里插入图片描述

  • 所以我们按照这个文章先写一个函数,这个函数主要是一个AJAX请求,然后来测试一下返回数据是否正常,然后再看一下我们想要去获取哪些数据;
export const loadSearchResults = async function (query) {try {const data = await getJSON(`${API_URL}?search=${query}`);console.log(data);} catch(err) {console.error(`${err}😰😰😰`);throw err;}
};
loadSearchResults('pizza');

在这里插入图片描述

  • 看来请求并没有什么问题,现在我们就要想办法将这些数据存起来,用什么存呢,肯定用数组在存放,那存放在哪里呢,记不记得之前的state了。我们需要将所有的数据都存储到这里面;
export const state = {recipe: {},search: {query: '',results: [],},
};
  • 现在我们将所有的食谱数据都存起来,然后的话再来测试一下
export const loadSearchResults = async function (query) {try {state.search.query = query;const data = await getJSON(`${API_URL}?search=${query}`);console.log(data);state.search.results = data.data.recipes.map(rec => {return {id: rec.id,title: rec.title,publisher: rec.publisher,image: rec.image_url,};});console.log(state.search.results);} catch (err) {console.error(`${err}😰😰😰`);throw err;}
};
loadSearchResults('pizza');

在这里插入图片描述

  • 测试成功之后,我们在控制器中将功能进行调用
const controlSearchResults = async function () {try {await model.loadSearchResults('pizza');console.log(model.state.search.results);} catch (err) {console.log(err);}
};
controlSearchResults();
  • 为什么遵循MVC架构,将DOM页面上的操作我们将不在控制器上面进行操作,所以我们单独的创建一个搜索的视图文件。文件简单的一些选择器和监听事件
class SearchView {#parentEl = document.querySelector('.search');getQuery() {return this.#parentEl.querySelector('.search__field').value;}
}export default new SearchView();
  • 接着我们在控制器里进行引入
import searchView from './view/searchView.js';
  • 接着我们将输入框中提交保存到一个变量中
const controlSearchResults = async function () {try {const query = searchView.getQuery();if (!query) return;await model.loadSearchResults('pizza');console.log(model.state.search.results);} catch (err) {console.log(err);}
};
  • 这里我们接着用之前说的发布者订阅者的模型来实现用户提交搜索之后的方法;
class SearchView {#parentEl = document.querySelector('.search');getQuery() {return this.#parentEl.querySelector('.search_field').value;}addHandlerSearch(handler) {this.#parentEl.addEventListener('submit', function (e) {e.preventDefault();handler();});}
}
  • 和之前一样,我们需要在init中调用一下
const init = function () {recipeView.addHandlerRender(controlRecipes);searchView.addHandlerSearch(controlSearchResults);
};init();
  • 现在应该是可以了,我们尝试一下

在这里插入图片描述

  • 在尝试一下其他的

在这里插入图片描述

  • 现在我们在每次输入之后清楚一下搜索框的内容
  getQuery() {const query = this.#parentEl.querySelector('.search__field').value;this.#clearInput();return query;}#clearInput() {this.#parentEl.querySelector('.search__field').value = '';}
  • 这里就不在进行测试了,尝试一下之后发送提交数据之后搜索框中的文件就会被清除;

第一部分到这里基本上就结束了,第二部分我们会将所有的搜索结果渲染到页面的侧边栏中!

http://www.whsansanxincailiao.cn/news/30718632.html

相关文章:

  • 广西省河池建设局网站/松松软文
  • 免费公司网站/网络营销策划内容
  • 微网站和微信/跨境电商培训
  • 做学历提升的能在哪个网站上宣传/网站怎么做
  • 代做毕业设计的网站/软文营销的三个层面
  • 合肥市网站制作/长沙网站关键词排名
  • 策划推广方案/灯塔seo
  • 网站建设的流程范文1500字/焊工培训ppt课件
  • 哪个网站可以做测试类/云南网络推广
  • 怎么做网站才能不让警察定位到自己/社交网络的推广方法
  • 政府网站建设应该/华为手机网络营销策划方案
  • 广东省医院建设协会网站/高端网站设计定制
  • wordpress设置qq邮箱设置/seo查询百科
  • 博乐建设工程信息网站/产品网络营销推广方案
  • 佛山出格建站/seo平台
  • 链家在线网站是哪个公司做的/新公司如何做推广
  • 网站建设石家庄/培训管理平台
  • 杭州公司建设网站/千锋教育培训机构可靠吗
  • 编程 朋友 做网站/seo产品优化免费软件
  • 一个网站占空间有多少g/外国网站怎么进入
  • 哪个网站做的系统好/推广app赚佣金平台有哪些
  • 做网站要不要35类商标/怎么在百度上做广告
  • 北京 网站建设/优化的定义
  • 带屏蔽的网站做水晶头/网页搜索
  • 企业请别人做网站/广告视频
  • 找图片素材网站/十大免费网站推广入口
  • 网站购物建设实训心得体会/四川seo多少钱
  • 新手如何搭建网站/seo云优化如何
  • 90设计素材网官网/廊坊百度关键词优化
  • asp网站免费模板/bing搜索引擎下载