Heim Web-Frontend View.js Wie implementiert man ein überschriftenähnliches Seitendesign in Vue?

Wie implementiert man ein überschriftenähnliches Seitendesign in Vue?

Jun 25, 2023 am 09:10 AM
vue 页面设计 头条

Vue ist eine Framework-basierte progressive JavaScript-Bibliothek, die es einfach macht, komplexe Single-Page-Anwendungen zu erstellen. In der Webentwicklung ist das titelartige Seitendesign zu einem allgemeinen Trend geworden, da es eine bessere Benutzererfahrung bieten und es den Benutzern erleichtern kann, interessante Inhalte zu durchsuchen und zu finden.

In diesem Artikel wird erläutert, wie Sie mit dem Vue-Framework ein Toutiao-ähnliches Seitendesign implementieren, einschließlich des Designs der Homepage, der Inhaltsseite und der Suchseite. Zuerst müssen wir Vue CLI installieren, ein offiziell von Vue bereitgestelltes Befehlszeilentool zum schnellen Erstellen von Vue-Anwendungen. Die spezifische Methode lautet wie folgt:

  1. Installieren Sie Node.js und npm.

Wenn Sie Node.js und npm nicht installiert haben, können Sie es von der offiziellen Website von Node.js herunterladen und installieren.

  1. Installieren Sie Vue CLI.

Sie können Vue CLI global mit dem folgenden Befehl installieren:

npm install -g @vue/cli
Nach dem Login kopieren
  1. Projekt erstellen.

Mit dem folgenden Befehl können Sie ein neues Vue-Projekt erstellen:

vue create my-project
Nach dem Login kopieren

wobei mein-projekt der Name des Projekts ist. Beim Erstellen eines Projekts können Sie die Standardeinstellungen verwenden oder einige Optionen manuell konfigurieren.

Jetzt beginnen wir mit der Implementierung des Seitendesigns, das Toutiao imitiert.

  1. Homepage-Design

Zunächst müssen wir eine Homepage erstellen, die über eine Kopfzeile, eine Navigationsleiste, eine Inhaltsliste und eine Fußzeile verfügen sollte. Mit Vue können wir diese Seite ganz einfach erstellen.

Der Kopfteil kann mithilfe von Komponenten implementiert werden. Der Code lautet wie folgt:

<template>
  <div class="header">
    <div class="logo">
      <img src="./assets/logo.png" alt="logo">
    </div>
    <div class="title">TODAY</div>
    <div class="search">
      <input type="text">
      <button>搜索</button>
    </div>
  </div>
</template>
Nach dem Login kopieren

Der Navigationsleistenteil enthält mehrere Registerkarten. Wir können ihn mit Vue Router implementieren. Beim Erstellen des Projekts mit Vue CLI haben wir Vue Router bereits installiert und müssen nur noch das Routing in App.vue konfigurieren. Der Code lautet wie folgt:

<template>
  <div>
    <router-link to="/">主页</router-link>
    <router-link to="/news">新闻</router-link>
    <router-link to="/video">视频</router-link>
    <router-link to="/my">我的</router-link>
    <router-link to="/publish">发布</router-link>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'App',
  components: {},
};
</script>
Nach dem Login kopieren

Der Inhaltslistenabschnitt enthält mehrere Artikel. Wir können Vue verwenden, um diese Artikel dynamisch zu rendern und einige Übergangseffekte hinzuzufügen, um die Benutzererfahrung zu verbessern. Der Code lautet wie folgt:

<template>
  <div class="article-list">
    <transition-group name="fade">
      <div class="article" v-for="article in articles" :key="article.id">
        <div class="image">
          <img :src="article.image" alt="article-image">
        </div>
        <div class="title">{{ article.title }}</div>
        <div class="summary">{{ article.summary }}</div>
        <div class="info">
          <div class="time">{{ article.time }}</div>
          <div class="source">{{ article.source }}</div>
          <div class="comment">{{ article.comment }}评论</div>
          <div class="like">{{ article.like }}赞</div>
        </div>
      </div>
    </transition-group>
  </div>
</template>

<script>
export default {
  name: 'ArticleList',
  data() {
    return {
      articles: [
        {
          id: 1,
          image: './assets/article1.jpg',
          title: '文章标题1',
          summary: '文章摘要1',
          time: '10分钟前',
          source: '文章来源1',
          comment: 100,
          like: 200,
        },
        {
          id: 2,
          image: './assets/article2.jpg',
          title: '文章标题2',
          summary: '文章摘要2',
          time: '20分钟前',
          source: '文章来源2',
          comment: 150,
          like: 250,
        },
        // 可以添加更多的文章
      ],
    };
  },
};
</script>

<style scoped>
/* 添加一些过渡效果 */
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
}
</style>
Nach dem Login kopieren

Der hintere Teil enthält einige gängige Links und Social-Media-Symbole. Der Code lautet wie folgt:

<template>
  <div class="footer">
    <div class="link">
      <a href="#">关于我们</a>
      <a href="#">联系我们</a>
      <a href="#">隐私政策</a>
      <a href="#">版权声明</a>
      <a href="#">广告服务</a>
      <a href="#">招聘信息</a>
    </div>
    <div class="social">
      <p>关注我们:</p>
      <div class="icon">
        <a href="#"><i class="fab fa-weibo"></i></a>
        <a href="#"><i class="fab fa-weixin"></i></a>
        <a href="#"><i class="fab fa-qq"></i></a>
        <a href="#"><i class="fab fa-douban"></i></a>
        <a href="#"><i class="fab fa-linkedin-in"></i></a>
        <a href="#"><i class="fab fa-github"></i></a>
      </div>
    </div>
  </div>
</template>
Nach dem Login kopieren
  1. Inhaltsseitendesign

Die Inhaltsseite sollte die Details des Artikels und verwandte Artikel enthalten und Kommentare. Wir können Vue Router verwenden, um Sprünge zu implementieren und Parameter zu übergeben. Der Code lautet wie folgt:

<template>
  <div class="article-page">
    <div class="article-header">
      <div class="title">{{ article.title }}</div>
      <div class="info">
        <div class="time">{{ article.time }}</div>
        <div class="source">{{ article.source }}</div>
        <div class="comment">{{ article.comment }}评论</div>
        <div class="like">{{ article.like }}赞</div>
      </div>
    </div>
    <div class="article-body">
      <div class="image">
        <img :src="article.image" alt="article-image">
      </div>
      <div class="content">
        {{ article.content }}
      </div>
    </div>
    <div class="article-footer">
      <div class="related-articles">
        <div class="title">相关文章</div>
        <div class="list">
          <div class="related-article" v-for="relatedArticle in relatedArticles" :key="relatedArticle.id">
            <div class="image">
              <img :src="relatedArticle.image" alt="article-image">
            </div>
            <div class="title">{{ relatedArticle.title }}</div>
          </div>
        </div>
      </div>
      <div class="comments">
        <div class="title">用户评论</div>
        <div class="list">
          <div class="comment" v-for="comment in comments" :key="comment.id">
            <div class="avatar">
              <img :src="comment.avatar" alt="user-avatar">
            </div>
            <div class="content">
              <div class="name">{{ comment.name }}</div>
              <div class="time">{{ comment.time }}</div>
              <div class="text">{{ comment.text }}</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'ArticlePage',
  data() {
    return {
      article: {
        id: 1,
        image: './assets/article1.jpg',
        title: '文章标题1',
        content: '文章内容1',
        time: '10分钟前',
        source: '文章来源1',
        comment: 100,
        like: 200,
      },
      relatedArticles: [
        {
          id: 2,
          image: './assets/article2.jpg',
          title: '文章标题2',
        },
        {
          id: 3,
          image: './assets/article3.jpg',
          title: '文章标题3',
        },
        // 可以添加更多的相关文章
      ],
      comments: [
        {
          id: 1,
          avatar: './assets/avatar1.jpg',
          name: '用户1',
          time: '1小时前',
          text: '评论内容1',
        },
        {
          id: 2,
          avatar: './assets/avatar2.jpg',
          name: '用户2',
          time: '2小时前',
          text: '评论内容2',
        },
        // 可以添加更多的评论
      ],
    };
  },
};
</script>
Nach dem Login kopieren
  1. Suchseitendesign

Die Suchseite sollte ein Suchfeld, eine Suchschaltfläche und Suchergebnisse enthalten. Wir können Vue verwenden, um Suchergebnisse dynamisch zu rendern. Der Code lautet wie folgt:

<template>
  <div class="search-page">
    <div class="search-box">
      <input type="text" v-model="query" placeholder="输入搜索内容">
      <button @click="search">搜索</button>
    </div>
    <div class="search-result">
      <div class="title">搜索结果</div>
      <div class="list">
        <div class="result" v-for="result in results" :key="result.id">
          <div class="image">
            <img :src="result.image" alt="article-image">
          </div>
          <div class="title">{{ result.title }}</div>
          <div class="source">{{ result.source }}</div>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: 'SearchPage',
  data() {
    return {
      query: '',
      results: [],
    };
  },
  methods: {
    search() {
      // 模拟搜索结果
      this.results = [
        {
          id: 1,
          image: './assets/article1.jpg',
          title: '搜索结果1',
          source: '文章来源1',
        },
        {
          id: 2,
          image: './assets/article2.jpg',
          title: '搜索结果2',
          source: '文章来源2',
        },
        // 可以添加更多的搜索结果
      ];
    },
  },
};
</script>
Nach dem Login kopieren

Bisher haben wir ein überschriftenähnliches Seitendesign implementiert. Mit dem Vue-Framework können Sie komplexe Seitendesigns schnell und einfach implementieren und so die Entwicklungseffizienz und das Benutzererlebnis verbessern. Ich hoffe, dieser Artikel kann Ihnen helfen, das Vue-Framework und seine Anwendungen besser zu verstehen.

Das obige ist der detaillierte Inhalt vonWie implementiert man ein überschriftenähnliches Seitendesign in Vue?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

Was bedeutet VUE Multi-Page-Entwicklung? Was bedeutet VUE Multi-Page-Entwicklung? Apr 07, 2025 pm 11:57 PM

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

So verwenden Sie Vue Traversal So verwenden Sie Vue Traversal Apr 07, 2025 pm 11:48 PM

Es gibt drei gängige Methoden für Vue.js, um Arrays und Objekte zu durchqueren: Die V-für-Anweisung wird verwendet, um jedes Element zu durchqueren und Vorlagen zu rendern; Die V-Bind-Anweisung kann mit V-für dynamisch Attributwerte für jedes Element verwendet werden. und die .MAP -Methode kann Array -Elemente in Neuarrays umwandeln.

Wie man zum Div von Vue springt Wie man zum Div von Vue springt Apr 08, 2025 am 09:18 AM

Es gibt zwei Möglichkeiten, Divelemente in Vue zu springen: Verwenden Sie Vue Router und fügen Sie Router-Link-Komponente hinzu. Fügen Sie den @click Event -Listener hinzu und nennen Sie dies. $ Router.push () Methode zum Springen.

See all articles