Vue实现搜索 和新闻列表功能简单范例

yizhihongxing
  1. Vue实现搜索功能简单范例

为了实现搜索功能,我们需要在Vue组件中引入双向绑定v-model和v-on指令,并绑定一个输入框元素,如下所示:

<template>
  <div>
    <input type="text" v-model="searchTerm" v-on:change="search"/>
    <ul>
      <li v-for="(item,index) in searchResults" :key="index">{{item}}</li>
    </ul>
  </div>
</template>

<script>
  export default {
    data() {
      return {
        searchTerm: '',
        itemList: ['item 1', 'item 2', 'item 3', 'item 4', 'item 5']
      }
    },
    computed: {
      searchResults() {
        return this.itemList.filter((item) => {
        return item.includes(this.searchTerm)
        })
      }
    },
    methods: {
      search() {
        this.$emit('search-event', this.searchTerm)
      }
    }
  }
</script>

在这个例子中,我们通过v-model将输入框元素与searchTerm绑定,通过v-on指令监听输入框的值改变事件,当我们在输入框中输入搜索关键字,会实时更新searchTerm。在computed属性中,我们通过使用Array的filter方法,将itemList中符合搜索关键字的项过滤出来,并保存在searchResults数组中。最后,在search方法中,我们使用$emit方法来触发search-event事件,并将搜索结果传递出去供其他组件使用。

  1. Vue实现新闻列表功能简单范例

为了实现新闻列表功能,我们可以使用Vue的组件化架构,将新闻列表封装成一个单独的组件,如下所示:

<template>
  <div>
    <h2>{{title}}</h2>
    <ul>
      <li v-for="(item,index) in newsList" :key="index">
        <a :href="item.link">{{item.title}}</a>
        <p>{{item.description}}</p>
      </li>
    </ul>
  </div>
</template>

<script>
  export default {
    props: {
      title: String,
      newsList: Array
    }
  }
</script>

在这个组件中,我们通过props接收外部传递进来的title和newsList数据,然后在组件内部遍历newsList数组,将每条新闻的title和description显示在页面上。注意的是,在template中使用v-for指令循环渲染列表项时,需要使用动态的key属性,来保证每条新闻列表项的唯一性。

在父组件中,我们可以通过axios库获取到后端返回的JSON格式新闻列表数据,并通过props的方式将title和newsList传递给子组件进行渲染。

<template>
  <div>
    <NewsList title="今日新闻" :newsList="newsList"></NewsList>
  </div>
</template>

<script>
import axios from 'axios';
import NewsList from './components/NewsList.vue';

export default {
  name: 'app',
  components: {
    NewsList
  },
  data() {
    return {
      newsList: []
    }
  },
  created() {
    axios.get('/news')
        .then((response) => {
          this.newsList = response.data;
        })
        .catch((error) => {
          console.log('Error fetching news list:', error);
        });
  }
}
</script>

在这个例子中,我们在父组件中引入NewsList组件,并将newsList通过props传递给子组件进行渲染。通过在created钩子中使用axios库,我们可以访问后端的/news路由,获取到返回的新闻列表数据,并将其赋值给newsList,以便父组件传递给子组件进行渲染。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue实现搜索 和新闻列表功能简单范例 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • 精读《Vue3.0 Function API》

    精读《Vue3.0 Function API》攻略 什么是Vue3.0 Function API Vue3.0 Function API 是 Vue3.0 中新添加的一种 API 范式,它是建立在组合式 API 之上的,旨在提高我们在编写 Vue 应用时的代码 风格及组件复用率等方面的优化。 如何使用Vue3.0 Function API 安装 Vue3.0…

    Vue 2023年5月27日
    00
  • Vue通过字符串关键字符实现动态渲染input输入框

    当我们需要动态生成一个输入框时,在Vue中可以通过字符串关键字符来实现,以下是具体步骤: 在Vue组件中定义一个data属性,用于存储动态生成的输入框的值 data() { return { inputValue: ” } }, 在模板中使用v-model绑定data属性,将动态生成的输入框与data属性进行双向绑定 <template> &l…

    Vue 2023年5月27日
    00
  • Vue子组件内的props对象参数配置方法

    下面将详细讲解“Vue子组件内的props对象参数配置方法”的完整攻略。 一、props对象简介 在Vue中,组件的数据流动一般是自上而下的,即父组件向子组件传递数据,子组件只能通过父组件传递过来的props属性接收数据,并且无法在子组件内修改这些属性的值。props属性是允许在父组件中指定的自定义特性,在模板中使用时,它需要和 v-bind 指令一起使用。…

    Vue 2023年5月27日
    00
  • Vue 进阶之路(三)

    下面我来为您详细讲解一下“Vue 进阶之路(三)”的完整攻略。 标题 “Vue 进阶之路(三)”的完整攻略主要包含以下内容: 1. Vue的混入 混入是Vue中的一个非常有用的特性,它可以让我们把一个对象的属性、方法等合并到一个Vue组件中。这样做的好处是可以有效地避免多个组件之间的代码冗余。 下面代码展示了如何在Vue中使用混入: const myMixi…

    Vue 2023年5月27日
    00
  • 详解vue移动端项目代码拆分记录

    详解vue移动端项目代码拆分记录 背景 随着vue项目的不断壮大,代码量越来越大,单一入口文件会变得越来越复杂,代码的维护和管理也越来越困难,因此我们需要对vue项目进行代码拆分。 代码拆分方案 我们可以将一个大的vue项目拆分成多个子项目,然后通过webpack构建工具自动化集成,这样项目结构更为清晰,维护和管理也更加轻松。 以下是代码拆分方案的具体实现步…

    Vue 2023年5月27日
    00
  • vue 取出v-for循环中的index值实例

    下面我将详细讲解”vue 取出 v-for循环中的index值实例”的攻略。 1. 在v-for循环中使用index 使用v-for循环时,可以给它提供一个参数,这个参数将会被自动的设置为当前项的索引值。v-for的语法如下: <template> <div> <ul> <li v-for="(item, …

    Vue 2023年5月29日
    00
  • 浅谈webpack性能榨汁机(打包速度优化)

    我来详细讲解一下“浅谈webpack性能榨汁机(打包速度优化)”的完整攻略。 一、前言 在现在的前端开发中,使用Webpack打包已成为主流,但是Webpack打包速度的问题一直都是众多开发者关注的重点。本文将从Webpack的优化策略和实战两个方面来为大家讲解如何优化Webpack的打包速度。 二、Webpack的优化策略 尽可能少地使用loader 在W…

    Vue 2023年5月28日
    00
  • vue导出excel表格的新手详细教程

    下面是“vue导出excel表格的新手详细教程”的完整攻略: 1. 安装依赖 首先,我们需要安装两个依赖包,file-saver和xlsx,分别用于文件保存和Excel表格的生成: npm install file-saver xlsx –save 2. 生成Excel文件 在Vue组件中,我们创建一个可以导出表格数据的方法,该方法需要调用xlsx库中的u…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部