熹微~~~基于Vue开发的昏暗风格的响应式网页!

简介: 熹微~~~基于Vue开发的昏暗风格的响应式网页!

熹微网页介绍

image.png

1、项目简介

熹微(dim-star),名字来源于晋代田园派诗人陶渊明的《归去来兮辞》:


问征夫以前路,恨晨光之熹微,


因为整个界面的风格是较为暗淡的,页面中的组件又总是给人微亮的感受,所以以熹微来命名。


熹微是基于vue框架开发的只包含前端页面的响应式网页,整个页面的响应式布局可以很好的展示组件随着页面的尺寸的变化而变化。


2、项目环境搭建

1.项目创建


创建项目 dim-star

vue create dim-star

选择Vue的版本

Default ([Vue 3] babel, eslint)

2.添加项目所需依赖

添加 router

vue add router

添加 scss 需要的依赖

npm install sass-loader sass --save-dev

添加 video 需要的依赖

npm install video.js
npm install videojs-flash
npm install vue-video-player

3、项目界面搭建

3.1、网页基础配置

3.1.1、页面全局配置

在 public/index.html文件中写入如下内容

<style>
    *{
        padding: 0;
        margin: 0;
        outline: none;
        box-sizing: border-box;
    }
</style>

3.1.2、项目初始化

删除创建项目时自带的组件等信息,具体内容如下


views/AboutView.vue

views/HomeView.vue

components/HelloWorld.vue

清除router/index.js中无效的路由信息

清除views/App.vue中的无效内容

3.2、配置App.vue

在App.vue文件中的template标签中写入如下内容

<div class="home-page">
    <div class="container">
        <!--左侧滑动条组件-->
        <side-bar-component></side-bar-component>
        <div class="wrapper">
            <!--头部组件-->
      <header-component></header-component>
            <div class="main-container">
            </div>
        </div>
    </div>
</div>

注:因为篇幅问题项目中的scss代码未罗列在页面


3.3、页面整体架构

3.3.1、创建左侧导航栏组件

文件创建位置 components/SideBarComponent.vue


3.3.2、创建头部导航栏组件

文件创建位置 components/HeaderComponent.vue


3.3.3、创建主页面

views/DiscoverView.vue页面

views/TendingView.vue页面

注:本项目仅添加上面创建的两个主页面


3.3.4、配置路由信息

① 配置路由渲染页面

配置文件 App.vue,在main-container容器中添加 router-view,如下

<div class="main-container">
    <router-view></router-view>
</div>

② 配置路由入口

配置文件SideBarComponent.vue,在menu容器中未每一项菜单配置 router-link,示例如下

<router-link to="/discover" active-class="active">
    <svg></svg>
    发现
</router-link>

③ 在文件router/index.js中添加如下内容

const routes = [
  {
    path: '/',
    name: 'home',
    redirect: '/discover',
    children:[
      {
        path: 'discover',
        name: 'discover',
        component: DiscoverView,
      },
      {
        path: 'tending',
        name: 'tending',
        component: TendingView
      },
    ]
  },
]

3.4、界面预览及布局

73.png
4、页面开发

4.1、[发现]页面

DiscoverView页面由上下两部分构成,可以拆分为如下三个部分


header 头部


BlogComponent 组件


VideoComponent 组件


在components文件夹下创建discover文件夹并创建上述两个组件


DiscoverView.vue 文件中的代码如下

<template>
    <div class="header anim" style="--delay: 0s">发现</div>
  <blog-component></blog-component>
  <video-component></video-component>
</template>

4.1.1、BlogComponent组件

① 简介

BlogComponent组件分由一两个卡片样式构成,如下所示

blogs

blog

blog

② 代码

略……

③ 界面预览

74.png4.1.2、VideoComponent组件

① 简介

VideoComponent组件由上下两部分构成,上部为小标签,下部为循环生成的videos列表,列表中的子video使用栅格布局,用户可以根据实际的需求来选择生成video的个数

② 代码

③ 界面预览

75.png
4.1.3、[发现]界面预览

76.png77.png4.2、[热门]页面

TendingView页面由左侧流和右侧流两部分构成。其中,左侧流结构由两部分构成,右侧流结构也由两部分构成


左侧

VideoComponent 组件

VideoDetailComonent 组件

右侧

ChatComponet 组件

ChatVipComponent组件

在components文件夹下创建tending文件夹并创建上述的四个组件


TendingView.vue 文件中的代码如下

<template>
  <div class="stream-area">
    <!--左侧流-->
    <div class="video-stream">
      <video-component></video-component>
      <video-detail-component></video-detail-component>
    </div>
    <!--右侧流-->
    <div class="chat-stream">
      <chat-component></chat-component>
      <chat-vip-component></chat-vip-component>
    </div>
  </div>
</template>

4.2.1、VideoComponent 组件

① 简介

VideoComponent组件为自定义的视频播放组件


文件assets/css/player.scss为我们自定义的视频播放器样式


使用自定义的视频组件,我们可以选择局部或全局导入,此处我们选择全局导入,在main.js中引入自定义视频组件的样式


②代码

在main.js中导入自定义视频播放器组件

require("video.js/dist/video-js.css")
require("vue-video-player/")
import "videojs-flash"
require("./assets/css/player.scss")

③ 自定义播放器预览

78.png
4.2.2、VideoDetailComponent 组件

① 简介

VideoDetailComponnent组件为视频详情组件,用于展示视频的详细信息,主要包含作者的信息和视频描述等内容

② 代码

③ 界面预览

79.png
4.2.3、ChatComponent 组件

① 简介

ChatComponent组件由头部功能提示块、底部的输入框和中间的一个循环生成的消息列表构成,主要展示用户当前的状态和消息

② 代码

③ 页面预览

80.png
4.2.4、ChatVipComponent组件

① 简介

ChatVipComponent组件的构成和ChatComponent组件的构成相似,同样是由三部分构成,不同的是中间为话题板块,底部为查看全部按钮

② 代码

③ 页面预览

81.png4.2.5、[热门]界面预览

82.png83.png

相关文章
|
1天前
|
缓存 JavaScript UED
Vue 中实现组件的懒加载
【10月更文挑战第23天】组件的懒加载是 Vue 应用中提高性能的重要手段之一。通过合理运用动态导入、路由配置等方式,可以实现组件的按需加载,减少资源浪费,提高应用的响应速度和用户体验。在实际应用中,需要根据具体情况选择合适的懒加载方式,并结合性能优化的其他措施,以打造更高效、更优质的 Vue 应用。
|
22小时前
|
JavaScript
如何在 Vue 中使用具名插槽
【10月更文挑战第25天】通过使用具名插槽,你可以更好地组织和定制组件的模板结构,使组件更具灵活性和可复用性。同时,具名插槽也有助于提高代码的可读性和可维护性。
7 2
|
22小时前
|
JavaScript
Vue 中的插槽
【10月更文挑战第25天】插槽的使用可以大大提高组件的复用性和灵活性,使你能够根据具体需求在组件中插入不同的内容,同时保持组件的结构和样式的一致性。
7 2
|
22小时前
|
前端开发 JavaScript 容器
在 vite+vue 中使用@originjs/vite-plugin-federation 模块联邦
【10月更文挑战第25天】模块联邦是一种强大的技术,它允许将不同的微前端模块组合在一起,形成一个统一的应用。在 vite+vue 项目中,使用@originjs/vite-plugin-federation 模块联邦可以实现高效的模块共享和组合。通过本文的介绍,相信你已经了解了如何在 vite+vue 项目中使用@originjs/vite-plugin-federation 模块联邦,包括安装、配置和使用等方面。在实际开发中,你可以根据自己的需求和项目的特点,灵活地使用模块联邦,提高项目的可维护性和扩展性。
|
1天前
|
缓存 JavaScript UED
Vue 中异步加载模块的方式
【10月更文挑战第23天】这些异步加载模块的方式各有特点和适用场景,可以根据项目的需求和架构选择合适的方法来实现模块的异步加载,以提高应用的性能和用户体验
|
2天前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
5天前
|
JavaScript
Vue 指令速查表
【10月更文挑战第12天】Vue 指令速查表
|
2天前
|
缓存 JavaScript 搜索推荐
Vue SSR(服务端渲染)预渲染的工作原理
【10月更文挑战第23天】Vue SSR 预渲染通过一系列复杂的步骤和机制,实现了在服务器端生成静态 HTML 页面的目标。它为提升 Vue 应用的性能、SEO 效果以及用户体验提供了有力的支持。随着技术的不断发展,Vue SSR 预渲染技术也将不断完善和创新,以适应不断变化的互联网环境和用户需求。
20 9
|
1天前
|
JavaScript 前端开发 UED
vue 提高 tree shaking 的效果
【10月更文挑战第23天】提高 Vue 中 Tree shaking 的效果需要综合考虑多个因素,包括模块的导出和引用方式、打包工具配置、代码结构等。通过不断地优化和调整,可以最大限度地发挥 Tree shaking 的优势,为 Vue 项目带来更好的性能和用户体验。
|
5天前
|
JavaScript 前端开发 开发者
Vue 的优缺点
【10月更文挑战第16天】Vue 具有众多优点,使其成为前端开发中备受青睐的框架之一。尽管它也存在一些局限性,但通过合理的应用和技术选型,这些问题可以得到一定程度的解决。在实际项目中,开发者可以根据项目的需求和特点,权衡 Vue 的优缺点,选择最适合的技术方案。同时,随着 Vue 不断的发展和完善,相信它将在前端开发领域继续发挥重要作用。
13 6