Vue学习之页面上中下三层布局

news2024/11/18 11:24:28

Vue学习之页面上中下三层布局

页面布局:头部,内容区,尾部,其中头部和尾部几乎所有页面都有,可抽成公共组件,内容区是可变的,由路由组件展示

  1. 页面效果
    在这里插入图片描述
  2. 实现
    (1)app.vue
<template>
  <div class="container">
    <!-- 顶部全局组件 -->
    <HospitalTop/> 
     <!-- 路由组件区域 -->
    <div class="content">
      <!-- 展示路由组件的区域 -->
      <router-view></router-view> 
      
    </div>
    <HospitalBottom/>
  </div>

  
</template>

<script setup lan="ts">
  import request from '@/utils/request';
  import {onMounted} from 'vue';
  onMounted(() => {
    // request.get('/hosp/hospital/1/10').then((res)=>{
    //   console.log("app组件展示获取的数据",res);
    // });
  });
</script>

<style scoped lang="scss">
  .container{
    display: flex;
    flex-direction: column;
    align-items: center;
   .content{
     margin-top: 70px;
      width: 1200px;
      min-height: 700px;
   }
  }
</style>

(2)头部组件

<template>
  <div class="top">
      <div class="content">
        <div class="left" @click="goHome">
          <img src="../../assets/images/logo.png" alt="尚医通">
          <p>尚医通 预约挂号统一平台</p>
        </div>
        <div class="right">
          <p class="help">帮助中心</p>
          <p class="login">登录/注册</p>
        </div>
      </div>
  </div>
</template>

<script setup lan="ts">
import {useRouter} from 'vue-router';
let $router = useRouter();
const goHome = ()=>{
  $router.push({path:'/home'});
}
</script>

<style scoped lang="scss">
  .top{
    // 固定
    position:fixed;
    z-index: 999;
    width: 100%;
    height: 70px;
    background-color: #fff;
    display: flex;
    justify-content: center;
    .content{
      width: 1200px;
      height: 70px;
      background: white;
      display: flex;
      justify-content: space-between;
      .left{
        display: flex;
        justify-content: center;
        align-items: center;
        img{
          width: 50px;
          heigth: 50px;
          margin-right: 10px;
        }
        p{
          font-size: 20px;
          color: #55a6f3;
        }
      }
      .right{
        display: flex;
        align-items: center;
        font-size: 14px;
        color: #bbb;
        .help{
          margin-right: 10px;
        }
      }
    }
  }
</style>

(3)尾部组件

<template>
  <div class="bottom">
      <div class="content">
        <div class="left">京ICP备 13018369号 电话挂号010-56253825</div>
        <div class="right">
            <span>联系我们</span>
            <span>合作伙伴</span>
            <span>用户协议</span>
            <span>隐私协议</span>
        </div>
      </div>
  </div>
</template>

<script setup lan="ts">

</script>

<style scoped lang="scss">
    .bottom{
        width: 100%;
        height: 50px;
        background-color: #f0f2f5;
        display: flex;
        justify-content: center;
        .content{
            width: 1200px;
            height: 100%;
            // 左右铺开并居中
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 14px;
            .right{
                span{
                    margin: 0px 5px;
                }
            }
        }
    }
</style>

(4)main.js
创建应用实例并挂载到挂载点上,使用组件

// vue3 提供的createApp方法,创建应用实例方法
import { createApp } from 'vue';
import '@/style/reset.scss';
// 引入根组件App
import App from '@/App.vue';
import HospitalTop from '@/components/hospital_top/index.vue';
import HospitalBottom from '@/components/hospital_bottom/index.vue';
// 引入vue-router插件
import router from '@/router/index.ts';
// 引入element-plus插件
import ElemnetPlus from 'element-plus';
import 'element-plus/dist/index.css';
// 引入国际化
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
// 创建应用实例并挂载到挂载点上
const app = createApp(App);
app.component('HospitalTop',HospitalTop);
app.component('HospitalBottom',HospitalBottom);
// 安装vue-router
app.use(router);
//安装element-plus
app.use(ElemnetPlus, {
    locale: zhCn,
  });
app.mount('#app');

(5)index.html

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>尚医通</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1059831.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

为什么在使用PageHelper插件时,指定的每页记录数大小失效?显示所有的记录数

1.问题现象&#xff1a; 这里指定每页显示5条&#xff0c;却把所有的记录数都显示出来了 2.分析&#xff1a; 之前是可以的&#xff0c;然后发现&#xff1a;PageHelper.startPage(pageNum,pageSize) 和执行sql的语句 顺序颠倒了&#xff0c;然后就出错了。 3.验证&#xf…

十天学完基础数据结构-第四天(链表(Linked List))

链表的基本概念 链表是一种线性数据结构&#xff0c;与数组不同&#xff0c;链表的元素&#xff08;节点&#xff09;之间通过指针相互连接。链表有以下基本概念&#xff1a; 节点&#xff1a;链表中的每个数据项称为节点&#xff0c;每个节点包含数据和一个指向下一个节点的指…

【Unity2022】Unity实现手机游戏操控摇杆(实现操控轮盘)

文章目录 运行效果预览创建物体脚本获取RectTransform处理玩家拖动事件完整代码 获取输入运行其他文章 运行效果预览 首先展示一下本文章实现的效果&#xff1a; 创建物体 创建两个UI图像&#xff0c;一个用于表示背景&#xff0c;作为父物体&#xff0c;命名为JoyStick&am…

ubuntu安装ROS rosdep init rosdep update报错,完美解决方案!

ubuntu安装ROS rosdep init rosdep update报错&#xff0c;终于让我发现完美解决方法啦&#xff01;清华源解决 问题的原因完美解决&#xff01; 问题的原因 rosdep init&#xff0c;rosdep update报错的根本原因还是国内网络连不上外网。所以改DNS之类的方法都是比较偶然能成…

Windows安装Docker并创建Ubuntu环境及运行神经网络模型

目录 前言在Windows上安装Docker在Docker上创建Ubuntu镜像并运行容器创建Ubuntu镜像配置容器&#xff0c;使其可以在宿主机上显示GUI 创建容器并运行神经网络模型创建容器随便找一个神经网络模型试试 总结 前言 学生党一般用个人电脑玩神经网络&#xff0c;估计很少有自己的服…

nginx下载与安装教程

文章目录 nginx简介nginx的主要应用场景nginx开源项目的源码结构 使用centos7安装nginx检查centos版本号和linux内核版本检查是否安装gcc、pcre、zlib、openssl等依赖 安装nginx启动nginx停止nginx重启nginx nginx简介 nginx是一款业内流行、功能强大的web服务器。 高性能&…

会声会影2024中文版好用吗?

近些年&#xff0c;短视频逐渐走红并普及到各个领域&#xff0c;吸引着大量的自媒体从业者和爱好者投身于视频制作的热潮之中。视频剪辑软件作为视频制作不可或缺的工具&#xff0c;那么如何选择视频剪辑软件呢&#xff1f;视频剪辑软件哪个好&#xff1f; 一、视频剪辑软件有哪…

2023年,在CSDN拥有10000粉丝有多难?

该数据来源于粉丝数人数排行前5000名用户的关注用户列表中产生的&#xff0c;由于采集样本数有限&#xff0c;数据可能具有一定的误差&#xff0c;仅供参考&#xff0c;本次采样用户数大概在100万以上。 筛选条件人数粉丝人数大于50007519粉丝人数大于100003763粉丝人数大于500…

GJB 128B-2021标准版本变更汇总 ,发布, 下载

GJB 128B-2021标准版&#xff0c;下载 一、 概述 GJB 128B-2021半导体分立器件试验方法已于2022年3月1日实施&#xff0c;相对现行标准&#xff0c;新版标准对部分内容进行了变更。针对我司VDMOS产品涉及的各种方法&#xff0c;我司对新标准与旧标准的差异进行了分析。 二、 …

【AI视野·今日NLP 自然语言处理论文速览 第四十七期】Wed, 4 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 4 Oct 2023 Totally 73 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Contrastive Post-training Large Language Models on Data Curriculum Authors Canwen Xu, Corby Rosset, Luc…

国庆中秋宅家自省: Python在Excel中绘图尝鲜

【一】国庆中秋: 悟 【国庆中秋】双节来临,相信各位有自己度过的方式,而我却以独特的方式度过了一个说出来不怕各位见笑的双节; 双节到来,没有太多惊喜&#xff0c;也没有太多的负面情绪, 只是喜欢独处,静静反省这些年走过的酸甜苦辣&#xff1b;生活中的许多不欢而散,不期而遇…

反素数

198. 反素数 - AcWing题库 最大的反素数也就是约数个数最多的数中最小的那个数&#xff0c;可以考虑分解质因子形式 2、3、5、7、11、13、17、19、23、29这些&#xff0c;还有每个质因子的指数一定大于等于下一个质因子的指数&#xff0c;这样可以保证约数最多的时候数字尽可能…

基于SpringBoot的智能推荐的卫生健康系统

目录 前言 一、技术栈 二、系统功能介绍 用户管理 科室类型管理 医生信息管理 健康论坛管理 我的发布 我的收藏 在线咨询 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在…

【神印王座】陈樱儿假扮魔神皇,皓晨想杀人灭口,采儿施展禁制,月夜成功自保

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 神印王座动画即将更新&#xff0c;官方早早就公布了最新集的预告。虽然三大荒野部族已经全都被灭了&#xff0c;但是危险并没有解除&#xff0c;陈樱儿假扮魔神皇救人。逃出生天后&#xff0c;猎魔团与月夜商会…

数字电路逻辑 之 逻辑与逻辑运算

注意逻辑顺序&#xff0c; * 是大于 左边这一列与右边这一列是对偶关系&#xff0c;真值相同

【遮天】韩老魔被灭小囡囡现身,好消息叶凡终于不跑酷了,但有坏消息

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 遮天第25集已经更新了&#xff0c;和很多人一样这一集刚更新小郑就去看了。而这一集看下来&#xff0c;可以说信息量非常多&#xff0c;从韩老魔被灭到小囡囡现身&#xff0c;再到叶凡终于不跑酷了&#xff0c…

基于springboot+vue的人事系统

目录 前言 一、技术栈 二、系统功能介绍 员工信息管理 考勤信息管理 考勤信息管理 下班记录管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;作为学校以及一些培训机构&#xff0c;都在用信息…

【JavaEE】synchronized 原理

文章目录 前言synchronized 的加锁过程1.无锁 -> 偏向锁2. 偏向锁 -> 轻量级锁3. 轻量级锁 -> 重量级锁 锁的优化操作1. 锁消除2. 锁粗化 相关面试题 前言 前面我们学习了关于JavaEE多线程方面的锁策略以及 synchronized 分别对应哪些锁策略&#xff0c;并且我们还了…

读富爸爸财务自由之路后感

&#xff08;点击即可收听&#xff09; 再比如&#xff0c;S象限的人把自己的经验复制、业务扩大&#xff0c;开办公司&#xff0c;从而拥有B象限的收入 当你在左右两侧象限都有收入时&#xff0c;就像两条腿走路的人&#xff0c;才是真正安全。 但财务安全还不等于财务自由&am…

高精度算法模板

1.加法 string a1, b1; int a[5010], b[5010], c[5010]; signed main() {cin >> a1 >> b1;int len1 a1.size();int len2 b1.size();for (int i 1; i < len1; i) {a[i] a1[len1 - i] - 0;}for (int i 1; i < len2; i) {b[i] b1[len2 - i] - 0;}for (in…