熹微~~~基于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

相关文章
|
7天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
7天前
|
存储 缓存 JavaScript
在 Vue 中使用 computed 和 watch 时,性能问题探讨
本文探讨了在 Vue.js 中使用 computed 计算属性和 watch 监听器时可能遇到的性能问题,并提供了优化建议,帮助开发者提高应用性能。
|
7天前
|
存储 缓存 JavaScript
如何在大型 Vue 应用中有效地管理计算属性和侦听器
在大型 Vue 应用中,合理管理计算属性和侦听器是优化性能和维护性的关键。本文介绍了如何通过模块化、状态管理和避免冗余计算等方法,有效提升应用的响应性和可维护性。
|
6天前
|
JavaScript 前端开发 UED
vue学习第二章
欢迎来到我的博客!我是一名自学了2年半前端的大一学生,熟悉JavaScript与Vue,目前正在向全栈方向发展。如果你从我的博客中有所收获,欢迎关注我,我将持续更新更多优质文章。你的支持是我最大的动力!🎉🎉🎉
|
6天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。自学前端2年半,熟悉JavaScript与Vue,正向全栈方向发展。博客内容涵盖Vue基础、列表展示及计数器案例等,希望能对你有所帮助。关注我,持续更新中!🎉🎉🎉
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
1050 0
|
7天前
|
存储 缓存 JavaScript
Vue 中 computed 和 watch 的差异
Vue 中的 `computed` 和 `watch` 都用于处理数据变化,但使用场景不同。`computed` 用于计算属性,依赖于其他数据自动更新;`watch` 用于监听数据变化,执行异步或复杂操作。
|
8天前
|
存储 JavaScript 开发者
Vue 组件间通信的最佳实践
本文总结了 Vue.js 中组件间通信的多种方法,包括 props、事件、Vuex 状态管理等,帮助开发者选择最适合项目需求的通信方式,提高开发效率和代码可维护性。
|
8天前
|
存储 JavaScript
Vue 组件间如何通信
Vue组件间通信是指在Vue应用中,不同组件之间传递数据和事件的方法。常用的方式有:props、自定义事件、$emit、$attrs、$refs、provide/inject、Vuex等。掌握这些方法可以实现父子组件、兄弟组件及跨级组件间的高效通信。
|
13天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发