ホームページ  >  記事  >  ウェブフロントエンド  >  vueローリングニュースの書き方

vueローリングニュースの書き方

PHPz
PHPzオリジナル
2023-05-24 10:07:07732ブラウズ

Vue は人気のあるフロントエンド フレームワークであり、その中心的な考え方はコンポーネント開発です。コンポーネントベースの開発スタイルにより、インタラクティブなインターフェイスや複雑なシングルページ アプリケーションの構築に最適です。 Vue では、スクロール ニュース コンポーネントを簡単に実装できます。この記事では、Vueを使ってスクロールニュースコンポーネントを実装する方法を紹介します。

HTML 構造

まず、スクロール ニュース コンポーネントの HTML 構造を定義する必要があります。以下は基本的な HTML 構造です:

<div class="news-container">
  <ul class="news-list">
    <li class="news-item">新闻内容1</li>
    <li class="news-item">新闻内容2</li>
    <li class="news-item">新闻内容3</li>
    <li class="news-item">新闻内容4</li>
    <li class="news-item">新闻内容5</li>
    <li class="news-item">新闻内容6</li>
  </ul>
</div>

その中で、news-container はスクロール ニュース コンポーネントのコンテナー、news-list はニュース リストのコンテナー、news-item はそれぞれのコンテナーです。ニュース記事。ニーズに応じて、さらに多くのスタイルと HTML 構造を設定できます。

Vue コンポーネント

次に、Vue でスクロール ニュース コンポーネントを定義する必要があります。以下は、基本的な Vue コンポーネントです。

<template>
  <div class="news-container">
    <ul class="news-list">
      <li v-for="news in newsList" class="news-item">{{ news }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  name: "ScrollNews",
  props: {
    delay: {
      type: Number,
      default: 3000,
    },
    newsList: {
      type: Array,
      default: () => [],
    },
  },
  data() {
    return {
      currentIndex: 0,
    };
  },
  created() {
    this.startTimer();
  },
  methods: {
    startTimer() {
      setInterval(() => {
        this.currentIndex++;
        if (this.currentIndex > this.newsList.length - 1) {
          this.currentIndex = 0;
        }
      }, this.delay);
    },
  },
};
</script>

上記のコードは、ScrollNews という名前の Vue コンポーネントを定義します。これは、2 つの props 属性 (Delay と newsList) を受け入れます。 late 属性はスクロールする時間をミリ秒単位で示し、newsList 属性はニュースのリストを示します。コンポーネントでは、v-for ディレクティブを使用して、ニュース リストのレンダリングをループします。 currentIndex プロパティは、現在表示されているニュース項目のインデックスを表します。

作成したフック関数では、startTimer メソッドを呼び出して、ニュースを定期的にスクロールするために使用されるタイマーを開始します。 startTimer メソッドでは、setInterval メソッドを使用して currentIndex プロパティを定期的に更新します。 currentIndex の値が newsList から 1 を引いた長さを超える場合は、currentIndex を 0 にリセットします。これにより、無限スクロールが可能になります。

スタイル

最後に、スクロール ニュース コンポーネントにスタイルを追加する必要があります。以下は基本的な CSS スタイルです:

.news-container {
  width: 100%;
  overflow: hidden;
}

.news-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.news-item {
  line-height: 30px;
  margin-bottom: 10px;
}

news-container のオーバーフローを hidden に設定して、そのコンテナを超えたコンテンツを非表示にします。ニュースリストとニュースアイテムのスタイルは美化のみを目的としています。

コンポーネントの使用

スクロール ニュース コンポーネントを定義したら、それを Vue アプリケーションで使用できるようになります。以下は、ScrollNews コンポーネントの使用例です。

<template>
  <div>
    <scroll-news :news-list="newsList" :delay="3000"></scroll-news>
  </div>
</template>

<script>
import ScrollNews from "./ScrollNews.vue";

export default {
  name: "App",
  components: {
    ScrollNews,
  },
  data() {
    return {
      newsList: [
        "新闻内容1",
        "新闻内容2",
        "新闻内容3",
        "新闻内容4",
        "新闻内容5",
        "新闻内容6",
      ],
    };
  },
};
</script>

上記のコードでは、Vue アプリケーションで ScrollNews コンポーネントを使用し、それに props 属性を渡します。 newsList 属性はニュース リストを含む配列で、lay 属性は 3000 ミリ秒ごとのスクロールを示します。

概要

この記事では、Vue を使用してローリング ニュース コンポーネントを実装する方法を紹介しました。まず HTML の構造とスタイルを定義し、次に Vue で ScrollNews コンポーネントを定義し、無限スクロール機能を実装しました。最後に、Vue アプリケーションで ScrollNews コンポーネントを使用する方法を示しました。

以上がvueローリングニュースの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。