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

  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日

相关文章

  • 使用异步组件优化Vue应用程序的性能

    当我们使用Vue构建大型应用程序时,组件的加载速度和性能就变得至关重要。Vue的异步组件功能可以帮助我们优化应用程序的性能,让我们来学习如何使用异步组件优化Vue应用程序的性能吧。 什么是异步组件 Vue的异步组件允许我们在构建大型应用程序时通过异步加载组件来提高性能。使用异步组件,我们可以仅在需要时才加载组件,而不是在页面加载时同时加载所有组件。这将加快页…

    Vue 2023年5月27日
    00
  • 利用vue3仿苹果系统侧边消息提示效果实例

    下面我就给您详细讲解利用vue3仿苹果系统侧边消息提示效果的完整攻略。 1. 概述 本文将介绍如何利用vue3实现仿苹果系统侧边消息提示效果。为了达到这个目的,我们将使用一些vue3的特性,如Teleport,Composition API等。 2. 准备工作 在正式开始实现之前,我们需要完成一些准备工作。 2.1 创建项目 首先,我们需要创建一个新的vue…

    Vue 2023年5月28日
    00
  • Vuex给state中的对象新添加属性遇到的问题及解决

    当我们给Vuex中的state中的对象添加新属性时,可能会遇到以下问题: 添加新属性后,该属性的初始值可能不会被监听到 在异步操作中添加属性会影响组件的响应性 解决这些问题的方案是使用Vue.set()或this.$set()方法。 Vue.set()和this.$set()都是Vue框架提供的全局方法,用来在响应式对象中设置值。下面,我们分别对Vue.se…

    Vue 2023年5月28日
    00
  • vue.js实现的幻灯片功能示例

    让我来给你详细讲解“vue.js实现的幻灯片功能示例”的完整攻略。首先,我们需要安装Vue.js,并且建立一个基本的Vue.js应用。 安装Vue.js 安装Vue.js最简单的方法是使用npm (node package manager)。首先,安装node.js和npm,然后在命令行中输入以下内容: npm install vue 创建Vue.js应用 …

    Vue 2023年5月27日
    00
  • vue3的ref、isRef、toRef、toRefs、toRaw详细介绍

    请听我为您详细介绍vue3中ref、isRef、toRef、toRefs、toRaw的作用和用法。 一、ref ref是Vue3提供的一个响应式数据类型,将非响应式数据转换为响应式数据。 ref接收一个参数,返回的是一个对象,通过修改对象的value属性来更新数据。 import { ref } from ‘vue’ const count = ref(0)…

    Vue 2023年5月28日
    00
  • Vue项目导入导出文件功能以及导出文件后乱码问题及解决

    下面是Vue项目导入导出文件功能以及乱码问题及解决的完整攻略。 1. Vue项目导入导出文件功能的实现思路 在Vue项目中,我们可以使用FileSaver.js 实现文件的导出。而文件的导入则需要使用HTML5 File API。具体实现思路如下: 首先确保引入了FileSaver.js库,可以使用npm包管理器进行安装: bashnpm install f…

    Vue 2023年5月27日
    00
  • 浅谈Vue中render中的h箭头函数

    下面我将详细讲解“浅谈Vue中render中的h箭头函数”的攻略。 什么是render函数? 在Vue中,我们经常使用template模板来编写组件。但是,在某些情况下,我们可能需要使用Vue的render函数来动态地生成组件的DOM结构。 因此,Vue提供了render函数来代替template。render函数是一个函数,它接收一个h函数作为它的第一个参…

    Vue 2023年5月28日
    00
  • Vue金融数字格式化(并保留小数)数字滚动效果实现

    Vue金融数字格式化(并保留小数)数字滚动效果实现是一个在金融、商务等领域中广泛使用的功能。下面我将给出完整的实现攻略。 步骤1:使用Vue.js中的过滤器实现数字格式化 使用Vue.js的过滤器(filter)功能,我们可以将数字按照一定规律进行格式化输出。以下是一个对数字进行千分位分隔和保留两位小数的过滤器示例代码: Vue.filter(‘number…

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