网页制作神器—ElementUI(小白入门超详细)

news2024/11/24 9:55:51

目录

一、前置准备 ⚓ 

二、引入ElementUI 📄 

三、使用ElementUI ⚙️


一、前置准备 ⚓ 

1、安装相关环境,使用VsCode或者webstrom初始化Vue 项目

软件环境下载地址:软件 - 坚果云 - |同步|备份|无限空间

vue-cli安装:

npm install -g @vue/cli

npm设置淘宝镜像加速:

​npm config set registry https://registry.npm.taobao.org

创建vue项目:

vue create vue

 

 

 

 

 

 当然,如果不使用yarn 就选npm

vue create vue--packageManager npm

        这将告诉 Vue CLI 在初始化项目时使用 npm 作为软件包管理器。这样,你就不需要后续手动更改依赖管理器了。(请注意,这个标志只在 Vue CLI 版本 4.5.0 或更高版本上可用。如果你的 Vue CLI 版本较旧,请先升级到最新版本)

运行vue项目:

cd vue
​npm run serve

Vue项目的初始化文件结构通常如下所示:

       App.vue是根组件,是项目的入口组件,可以在其中定义整个应用的布局和结构。main.js是项目的主入口文件,在这里创建Vue实例,并进行其他的配置和初始化操作。 public目录用于存放不需要经过打包处理的静态资源。 其中vue.config.js是Vue项目的配置文件,可以对构建过程进行自定义配置,如更改输出路径、配置代理、压缩等。如将初始项目端口号修改为 7000。

 

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer:{
    port:7000
  },
  chainWebpack: config => {
    config.plugin('html')
        .tap(args => {
          args[0].title = "firstVue"
          return args;
        })
  }
})

 可以发现现在修改了title的名字,如果不加这段代码,默认展示的就是新建项目时起的名子。

2、安装组件 | Element

 

 3、修改初始化文件

 删除之后为:

<template>
  <div>
    主页
  </div>
</template>

<script>
export default {
  name: 'HomeView',
}
</script>

 删除之后为:

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

增加全局样式: 

*{
    box-sizing:border-box;
}
body {
    color: #333;
    font-size: 14px;
    /* 外和内边框都为0 */
    margin: 0;
    padding:0;
}

import '@/assets/css/global.css

至此,项目初始化完成! 

 

二、引入ElementUI 📄 

安装成功后,即可引入

 在 main.js 中

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.config.productionTip = false

Vue.use(ElementUI, { size: "small" });

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

三、使用ElementUI ⚙️

学习两种布局

在 HomeView.vue 文件中 

<template>
  <div>
    主页
    <el-row>
      <el-col :span="6">
        <div style="width: 100%; height: 30px; background-color: deeppink"></div></el-col>
      <el-col :span="6">
        <div style="width: 100%; height: 30px; background-color: orange"></div></el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="1">
        <div style="width: 100%; height: 300px; background-color: dodgerblue"></div></el-col>
      <el-col :span="23">
        <div style="width: 100%; height: 300px; background-color: red"></div></el-col>
    </el-row>
  </div>
</template>

<script>
export default {
  name: 'HomeView',
}
</script>


<template>
  <div>
    主页
    <el-row>
      <el-col :span="6">
        <div style="width: 100%; height: 30px; background-color: deeppink"></div></el-col>
      <el-col :span="6">
        <div style="width: 100%; height: 30px; background-color: orange"></div></el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="1">
        <div style="width: 100%; height: 300px; background-color: dodgerblue"></div></el-col>
      <el-col :span="23">
        <div style="width: 100%; height: 300px; background-color: red"></div></el-col>
    </el-row>
    <el-row>
      <el-col :span="6">
        <div style="padding: 10px; border: 1px solid #ccc;text-align:center">
          <img style="width: 100%" src="@/assets/logo.png" alt="">
          <div style="text-align: center"> 商品 1 </div>
          <div style= "color: red">价格 $99.00</div>
        </div>
      </el-col>
      <el-col :span="6">
        <div style="padding: 10px; border: 1px solid #ccc;text-align:center">
          <img style="width: 100%" src="@/assets/logo.png" alt="">
          <div style="text-align: center"> 商品 2 </div>
          <div style="color: red">价格 $99.00</div>
        </div>
      </el-col>
      <el-col :span="6">
        <div style="padding: 10px; border: 1px solid #ccc;text-align:center">
          <img style="width: 100%" src="@/assets/logo.png" alt="">
          <div style="text-align: center"> 商品 3 </div>
          <div style="color: red">价格 $99.00</div>
          </div>
      </el-col>
      <el-col :span="6">
        <div style="padding: 10px; border: 1px solid #ccc;text-align:center">
          <img style="width: 100%" src="@/assets/logo.png" alt="">
          <div style="text-align: center"> 商品 4 </div>
          <div style="color: red">价格 $99.00</div>
        </div>
      </el-col>
    </el-row>
  </div>
</template>

<script>
export default {
  name: 'HomeView',
}
</script>

 再学习第二种方式,使用Container 布局容器,创建一个导航栏

<el-menu>:外层容器。管理定义内容的子元素 

:default-openeds  设置el-menu列表默认打开。

<el-submenu>:定义一个可点击的点击菜单。

      <template>:el-menu的子元素用来定义el-menu点击列表的列表名字。

     <el-menu-item>:按钮元素,菜单列表的单位元素。

<el-menu-item-group>:el-men-item的分组元素。

    <el-container>
      <el-aside width="200px">Aside</el-aside>
      <el-container>
        <el-header>Header</el-header>
        <el-main>Main</el-main>
        <el-footer>Footer</el-footer>
      </el-container>
    </el-container>

<template>
  <div id="app">
    <el-container style="height: 500px; border: 1px solid #eee">
      <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
        <el-menu :default-openeds="['1', '3']">
          <el-submenu index="1">
            <template slot="title"><i class="el-icon-message"></i>导航一</template>
            <el-submenu>
              <template slot="title">分组一</template>
              <el-menu-item index="1-1">选项1</el-menu-item>
              <el-menu-item index="1-2">选项2</el-menu-item>
            </el-submenu>
            <el-submenu index="1-2">
              <template slot="title">分组2</template>
              <el-menu-item index="1-3">选项3</el-menu-item>

              <el-submenu index="1-4">
                <template slot="title">选项4</template>
                <el-menu-item index="1-4-1">选项4-1</el-menu-item>
              </el-submenu>
            </el-submenu>
          </el-submenu>
          <el-submenu index="2">
            <template slot="title"><i class="el-icon-menu"></i>导航二</template>
            <el-menu-item-group>
              <template slot="title">分组一</template>
              <el-menu-item index="2-1">选项1</el-menu-item>
              <el-menu-item index="2-2">选项2</el-menu-item>
            </el-menu-item-group>
            <el-menu-item-group title="分组2">
              <el-menu-item index="2-3">选项3</el-menu-item>
            </el-menu-item-group>
            <el-submenu index="2-4">
              <template slot="title">选项4</template>
              <el-menu-item index="2-4-1">选项4-1</el-menu-item>
            </el-submenu>
          </el-submenu>
          <el-submenu index="3">
            <template slot="title"><i class="el-icon-setting"></i>导航三</template>
            <el-menu-item-group>
              <template slot="title">分组一</template>
              <el-menu-item index="3-1">选项1</el-menu-item>
              <el-menu-item index="3-2">选项2</el-menu-item>
            </el-menu-item-group>
            <el-menu-item-group title="分组2">
              <el-menu-item index="3-3">选项3</el-menu-item>
            </el-menu-item-group>
            <el-submenu index="3-4">
              <template slot="title">选项4</template>
              <el-menu-item index="3-4-1">选项4-1</el-menu-item>
            </el-submenu>
          </el-submenu>
        </el-menu>
      </el-aside>

      <el-container>
        <el-header style="text-align: right; font-size: 12px">
          <el-dropdown>
            <i class="el-icon-setting" style="margin-right: 15px"></i>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item>查看</el-dropdown-item>
              <el-dropdown-item>新增</el-dropdown-item>
              <el-dropdown-item>删除</el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
          <span>王小虎</span>
        </el-header>

        <el-main>
          <el-table :data="tableData">
            <el-table-column prop="date" label="日期" width="140">
            </el-table-column>
            <el-table-column prop="name" label="姓名" width="120">
            </el-table-column>
            <el-table-column prop="address" label="地址">
            </el-table-column>
          </el-table>
        </el-main>
      </el-container>
    </el-container>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    const item = {
      date: '2016-05-02',
      name: '王小虎',
      address: '上海市普陀区金沙江路 1518 弄'
    };
    return {
      tableData: Array(20).fill(item)
    }
  }
}
</script>

<style>
.el-header {
  background-color: #B3C0D1;
  color: #333;
  line-height: 60px;
}

.el-aside {
  color: #333;
}

</style>

这段代码的层次结构如下:

  • App (根组件)
    • el-container (容器组件,设置高度和边框样式)
      • el-aside (侧边栏组件,设置宽度和背景颜色)
        • el-menu (菜单组件,设置默认展开项)
          • el-submenu (子菜单组件)
            • el-menu-item (菜单项组件)
            • el-menu-item (菜单项组件)
          • el-submenu (子菜单组件)
            • el-menu-item (菜单项组件)
            • el-submenu (子菜单组件)
              • el-menu-item (菜单项组件)
          • el-submenu (子菜单组件)
            • el-menu-item-group (菜单项分组组件)
              • el-menu-item (菜单项组件)
              • el-menu-item (菜单项组件)
            • el-menu-item-group (菜单项分组组件)
              • el-menu-item (菜单项组件)
            • el-submenu (子菜单组件)
              • el-menu-item (菜单项组件)
      • el-container (容器组件)
        • el-header (头部组件,右对齐)
          • el-dropdown (下拉菜单组件)
            • i (图标)
            • el-dropdown-menu (下拉菜单项组件)
              • el-dropdown-item (下拉菜单项组件)
              • el-dropdown-item (下拉菜单项组件)
              • el-dropdown-item (下拉菜单项组件)
          • span (文本)
        • el-main (内容主体组件)
          • el-table (表格组件)
            • el-table-column (表格列组件)
            • el-table-column (表格列组件)
            • el-table-column (表格列组件)

<el-menu>:外层容器。管理定义内容的子元素 

:default-openeds  设置el-menu列表默认打开。

<el-submenu>:定义一个可点击的点击菜单。

      <template>:el-menu的子元素用来定义el-menu点击列表的列表名字。

     <el-menu-item>:按钮元素,菜单列表的单位元素。

<el-menu-item-group>:el-men-item的分组元素。

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

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

相关文章

Linux-C++开发项目:基于主从Reactor模式的高性能并发服务器

目录 1.项目介绍2.1项目部署2.2安装版本较高的编译器 2.项目开发过程2.1网络库模块开发2.1.1简单日志宏的实现2.1.2Buffer模块实现2.1.3Socket模块实现2.1.4Channel模块实现2.1.5Poller模块实现2.1.6TimerWheel模块实现2.1.7EventLoop模块实现2.1.8整合测试12.1.9LoopThread模块…

Python:23种Pandas核心操作方法

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 Pandas 是一个 Python 软件库&#xff0c;它提供了大量能使我们快速便捷地处理数据的函数和方法。 一般而言&#xff0c;Pandas 是使 Python 成为强大而高效的数据分析环境的重要因素之一。 在本文中&#xff0c;作者从基本…

LeetCode530. 二叉搜索树的最小绝对差

530. 二叉搜索树的最小绝对差 文章目录 [530. 二叉搜索树的最小绝对差](https://leetcode.cn/problems/minimum-absolute-difference-in-bst/)一、题目二、题解方法一&#xff1a;中序遍历递归方法二&#xff1a;迭代 一、题目 给你一个二叉搜索树的根节点 root &#xff0c;返…

一篇打通,pytest自动化测试框架详细,从0到1精通实战(一)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 pytest单元测试框…

js设置css变量控制页面一行展示指定个数的元素

前置知识&#xff1a; CSS变量之var()函数的应用——动态修改样式 & root的使用 flex相关知识 场景&#xff1a; 动态设置给父元素内子元素设置每行排列几个 通过 document.body.style.setProperty(--itemNum, 5)设置样式变量&#xff0c;然后通过给父元素设置display: f…

此芯科技加入 openKylin 开源社区

导读近日消息&#xff0c;据此芯科技官方公众号表示&#xff0c;此芯科技目前已经签署 openKylin 社区 CLA&#xff08;Contributor License Agreement 贡献者许可协议&#xff09;&#xff0c;正式加入 openKylin 开源社区。 此芯科技成立于 2021 年&#xff0c;是一家专注于设…

EDUSRC之一次奇葩的文件上传

当时误打误撞发现的&#xff0c;觉得挺奇葩的&#xff0c;记录下 一个正常的图片上传的点&#xff0c;文件类型白名单 但是比较巧的是当时刚对上面的id进行过注入测试&#xff0c;有一些遗留的测试 payload 没删&#xff0c;然后在测试上传的时候就发现.php的后缀可以上传了&a…

Https、CA证书、数字签名

Https Http协议 Http协议是目前应用比较多应用层协议&#xff0c;浏览器对于Http协议已经实现。Http协议基本的构成部分有 请求行 &#xff1a; 请求报文的第一行请求头 &#xff1a; 从第二行开始为请求头内容的开始部分。每一个请求头都是由K-V键值对组成。请求体&#xf…

Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷达成像的高效实现

Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷达成像的高效实现 注1&#xff1a;本文系“无线感知论文速递”系列之一&#xff0c;致力于简洁清晰完整地介绍、解读无线感知领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; MobiCom, Sigcom, MobiSys, NSDI…

Kubeadm安装K8s集群

一、硬件环境 准备3台Linux服务器&#xff0c;此处用Vmware虚拟机。 主机名CPU内存k8smaster2核4Gk8snode12核4Gk8snode22核4G 二、系统前置准备 配置三台主机的hosts文件 cat << EOF > /etc/hosts 192.168.240.130 k8smaster 192.168.240.132 k8snode1 192.168.…

小白必看:测试人有必要参考的软件测试工作规范

为了规范测试工作、减少开发与测试之前的沟通成本、保证项目进度、提高软件质量&#xff0c;测试人员有必要参考这份软件测试工作规范。 1.1. 编码规范 软件程序开发需要遵守编码规范&#xff0c;一是可以减少代码的维护成本&#xff0c;提高开发工作效率&#xff1b;二是有…

2023国赛数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …

AOPSpringAOP两种动态代理

1、什么是AOP 切面编程&#xff08;Aspect-Oriented Programming&#xff0c;AOP&#xff09;是一种软件开发方法&#xff0c;旨在通过分离关注点&#xff08;Concerns&#xff09;来增强代码的模块性、可维护性和可重用性。 AOP 是 OOP 的延续&#xff0c;是软件开发中的一个…

【Qt高阶】老Qt都不一定清楚的“QObject线程亲和性”【2023.08.13】

老Qt都不一定清楚的“线程亲和性” 与题目无关 感觉自己还挺2&#xff0c;有粉丝点了那个契约者会给up发个鼓励的话&#xff0c;我还以为是人私信发的&#xff0c;都挨个感谢了&#xff0c;后来才意识到是系统自动发的&#x1f623;&#x1f623;&#x1f623;。 自上上期视频对…

⛳ Java集合框架

目录 ⛳ Java集合框架&#x1f3a8; 一、概述&#x1f3ed; 二、Iterator接口&#x1f4ad; 2.1、基础用法&#x1f69c; 2.2、原理&#x1f43e; 2.3、为什么需要iterator接口☁ 2.4、ListIterator接口&#x1f4e2; 2.5、iterator在集合中的实现例子2.5.1、Iterator在ArrayLi…

潜水减压多普勒超声气泡信号识别方法

用三参量模糊分析法识别潜水减压气泡信号的研究 摘要 三参量模糊分析法。建立了 f-p-Δp( 频率、谱峰、峰差) 三参量模糊分析法&#xff0c;综合气泡原本特征以及背景噪声计算评分以识别气泡&#xff0c;最后给予 SPENCERⅠ &#xff5e; Ⅲ分级原理和方法 减压气泡信号的能量…

分布式 - 消息队列Kafka:Kafka生产者发送消息的方式

文章目录 1. Kafka 生产者2. kafaka 命令行操作3. kafka 生产者发送消息流程4. Kafka 生产者的创建5. Kafka 生产者发送消息1. 发送即忘记2. 同步发送3. 异步发送 6. Kafka 消息对象 ProducerRecord 1. Kafka 生产者 不管是把Kafka作为消息队列、消息总线还是数据存储平台&…

Vue3组件库

Vue3组件库 ViteVue3TypescriptTSX 1、项目搭建 1.1、创建项目&#xff08;yarn&#xff09; D:\WebstromProject>yarn create vite yarn create v1.22.19 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh p…

asyncio是什么?

如果把进程比作从A处到B处去这件事&#xff0c;那么线程就是可供选择的多条道路&#xff0c;协程就是道路上特殊路段&#xff08;类似限速&#xff0c;一整条道路都是特殊路段的话&#xff0c;就是全部由协程实现&#xff09; 例图如下&#xff1a; 1. 什么是协程&#xff08…