Vue02ElementUI 布局,node.js 和npm 脚手架
发布日期:2021-05-08 03:02:39 浏览次数:28 分类:原创文章

本文共 15131 字,大约阅读时间需要 50 分钟。

Vue02ElementUI 布局,node.js 和npm 脚手架

如何使用ElementUI

使用ElementUI搭建一个简单的布局

在这里插入图片描述

(1)引入相关的库

   <!--    引入elementUI的css的样式-->    <link rel="stylesheet" href="./css/index.css">    <!--    引入vue的js必须要在elementUI的js引入之前-->    <script src="./js/vue.js"></script>    <!--    引入elementui的js  组件库-->    <script src="./js/index.js"></script>    <!--    引入elementUI的图标-->    <link rel="stylesheet" href="./theme-chalk-master/lib/index.css">

(2)创建div标签,将vue对象挂在到该标签上。

<script>    const app = new Vue({           el: "#app",        data: {               image: [               "images/00.jpg",               "images/01.jpg",               "images/02.jpg",               "images/03.jpg"            ],            index: 0,        },        methods: {               handleOpen(key, keyPath) {                   console.log(key, keyPath);            },            handleClose(key, keyPath) {                   console.log(key, keyPath);            }        }    })</script>

(3)css 代码
在这里插入图片描述
**注意:**加上这个style样式
** 下拉框超出边框 **
.el-aside .el-menu{
border: none;
}
在这里插入图片描述

注意:这个用来搭建布局,让左右两个东西分别居于左右
display: flex; /流式布局/
justify-content: space-between; /**/

<style>    body, html, #box, #app {           padding: 0;        margin: 0;        height: 100% !important; /*强制*/    }    .el-avatar {           margin-top: 10px;    }    .el-header, .el-footer {           background-color: #B3C0D1;        color: #333;    }    .el-header div {           display: flex; /*流加载*/        justify-content: space-between;    }    .el-aside {           background-color: #D3DCE6;        color: #333;    }    .el-main {           background-color: #E9EEF3;        color: #333;    }    body > .el-container {           margin-bottom: 40px;    }    .el-container:nth-child(5) .el-aside,    .el-container:nth-child(6) .el-aside {           line-height: 260px;    }    .el-container:nth-child(7) .el-aside {           line-height: 320px;    }    .el-dropdown-link {           cursor: pointer;        color: #409EFF;    }    .el-icon-arrow-down {           font-size: 12px;    }    .el-carousel__item h3 {           color: #475669;        font-size: 14px;        opacity: 0.75;        line-height: 150px;        margin: 0;    }    .el-carousel__item:nth-child(2n) {           background-color: #99a9bf;    }    .el-carousel__item:nth-child(2n+1) {           background-color: #d3dce6;    }</style>

(4)完整的布局
注意: :unique-opened=“true” 表示只展开一个

<div id="app">    <el-container id="box">        <!--图标-->        <el-header>            <div><img src="./image/logo.jpg" alt="">                <el-dropdown>                      <span class="el-dropdown-link">                        <!--头像-->                <el-avatar src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png">                </el-avatar><i class="el-icon-arrow-down el-icon--right"></i>                      </span>                    <el-dropdown-menu slot="dropdown">                        <el-dropdown-item>个人中心</el-dropdown-item>                        <el-dropdown-item>退出</el-dropdown-item>                    </el-dropdown-menu>                </el-dropdown>            </div>        </el-header>        <el-container>            <el-aside width="200px">                <!--                  :unique-opened="true" 表示只展开一个-->                <el-menu                        :unique-opened="true"                        default-active="2"                        class="el-menu-vertical-demo"                        @open="handleOpen"                        @close="handleClose">                    <el-submenu index="1">                        <template slot="title">                            <i class="el-icon-location"></i>                            系统管理                        </template>                        <el-menu-item index="1-1"><i class="el-icon-location"></i>选项1</el-menu-item>                        <el-menu-item index="1-2"><i class="el-icon-location"></i>选项2</el-menu-item>                        <el-menu-item index="1-3">选项3</el-menu-item>                    </el-submenu>                    <el-submenu index="2">                        <template slot="title">                            <i class="el-icon-location"></i>                            系统管理                        </template>                        <el-menu-item index="2-1">选项1</el-menu-item>                        <el-menu-item index="2-2">选项2</el-menu-item>                        <el-menu-item index="2-3">选项3</el-menu-item>                    </el-submenu>                    <el-submenu index="3">                        <template slot="title">                            <i class="el-icon-rank"></i>                            系统管理                        </template>                        <el-menu-item index="3-1">选项1</el-menu-item>                        <el-menu-item index="3-2">选项2</el-menu-item>                        <el-menu-item index="3-3">选项3</el-menu-item>                    </el-submenu>                    <el-menu-item index="4">                        <i class="el-icon-setting"></i>                        <span slot="title">导航四</span>                    </el-menu-item>                </el-menu>            </el-aside>            <el-main>                <template>                    <div class="block">                        <span class="demonstration">默认 Hover 指示器触发</span>                        <el-carousel height="150px">                            <el-carousel-item v-for="(item,index) in image" :key="index+1"><img :src="item" alt="">                                <h3 class="small"> <img src="images/00.jpg" alt=""></h3>                            </el-carousel-item>                        </el-carousel>                    </div>                </template>            </el-main>        </el-container>        <el-footer>Footer</el-footer>    </el-container></div>

NodeJS npm 脚手架

1.node.js里面会自动携带npm
node.js前端的服务器 理解为web中的tomcat
npm 下载依赖的比如elementui axios 理解为maven仓库
必须安装在英文目录下
检验是否安装成功
在这里插入图片描述
设置npm的淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
检验
cnpm -v

安装vue的脚手架

脚手架:Vue脚手架可以快速生成Vue项目基础的架构。

(1)Vue脚手架安装:

cnpm install -g @vue/cli

在这里插入图片描述
(2)检验脚手架是否安装成功,这里显示的是版本号
在这里插入图片描述
(3)使用图形化界面来创建vue工程
先在cmd里面输入

vue ui

在这里插入图片描述
(4)会自动进入这个页面,然后点击左下角:
在这里插入图片描述
在这里插入图片描述
(5)点击创建新项目:
在这里插入图片描述
(6)这里需要自定义配置项目
在这里插入图片描述
(7)注意一定要按照这张图片勾选,不能少了router在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(8)点击之后就进入到idea
在这里插入图片描述
(9)工程文件的分析:
在这里插入图片描述
(10)在工程中安装需要的依赖 需要安装
在这里插入图片描述在这里插入图片描述
①最好在图形化界面上安装
在这里插入图片描述
在这里插入图片描述

②或者使用命令模式(这样用命令安装不全,建议可视化界面安装)

npm i element-ui -Selement-ui:需要安装的依赖名称

在这里插入图片描述
(11)启动项目可以在可视化界面或者用命令行
①可视化界面启动项目
在这里插入图片描述
②命令行模式运行

npm run serve

在这里插入图片描述

npm 路由执行流程:

从程序入口点App.vue,
在这里插入图片描述
找到路由的index.js
在这里插入图片描述
在进入到Home.vue页面
在这里插入图片描述

例子

在App.vue中添加了一个路由

添加myhome
myhome
渲染路由后的组件,注意引入就必须要渲染

<template>  <div id="app">    <router-link to="/">Home</router-link> |    <router-link to="/about">About</router-link> |<!--    添加myhome-->    <router-link to="/myhome">myhome</router-link>    <img src="./assets/logo.png"><!--    渲染路由后的组件-->    <router-view/>  </div></template><script>export default {     name: 'app',  components: {     }}</script><style>#app {     font-family: 'Avenir', Helvetica, Arial, sans-serif;  -webkit-font-smoothing: antialiased;  -moz-osx-font-smoothing: grayscale;  text-align: center;  color: #2c3e50;  margin-top: 60px;}</style>

index.js代码

import Vue from 'vue'import VueRouter from 'vue-router'import Home from '../views/Home.vue'import myhome from '../views/myhome.vue'Vue.use(VueRouter)const routes = [  {       path: '/',    name: 'Home',    component: Home  },  {       path: '/about',    name: 'About',    // route level code-splitting    // this generates a separate chunk (about.[hash].js) for this route    // which is lazy-loaded when the route is visited.    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')  },  //  myhome  {       path: '/myhome',//表示的路径    name: 'myhome',    component: myhome //跳转的组件 网页  }]const router = new VueRouter({     routes})export default router

myhome.vue代码

<template><div id="myhome">        <el-container id="box">            <!--图标-->            <el-header>                <div><img src="../assets/images/logo.png" alt="">                    <el-dropdown>                      <span class="el-dropdown-link">                        <!--头像-->                <el-avatar src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png">                </el-avatar><i class="el-icon-arrow-down el-icon--right"></i>                      </span>                        <el-dropdown-menu slot="dropdown">                            <el-dropdown-item>个人中心</el-dropdown-item>                            <el-dropdown-item>退出</el-dropdown-item>                        </el-dropdown-menu>                    </el-dropdown>                </div>            </el-header>            <el-container>                <el-aside width="200px">                    <!--                  :unique-opened="true" 表示只展开一个-->                    <el-menu                            default-active="2"                            class="el-menu-vertical-demo"                            @open="handleOpen"                            @close="handleClose"                            background-color="#545c64"                            text-color="#fff"                            active-text-color="#ffd04b">                        <el-submenu index="1">                            <template slot="title">                                <i class="el-icon-location"></i>                                <span>地址系统</span>                            </template>                            <el-menu-item-group>                                <el-menu-item index="1-1"><i class="el-icon-rank"></i>                                    选项1                                </el-menu-item>                                <el-menu-item index="1-2"><i class="el-icon-rank"></i>选项2</el-menu-item>                                <el-menu-item index="1-3">选项3                                    <el-submenu index="1-3-1">                                        <template slot="title">选项4</template>                                        <el-menu-item index="1-4-1">选项1</el-menu-item>                                    </el-submenu>                                </el-menu-item>                            </el-menu-item-group>                            <el-submenu index="1-4">                                <template slot="title">选项4</template>                                <el-menu-item index="1-4-1">选项1</el-menu-item>                            </el-submenu>                        </el-submenu>                        <el-menu-item index="2">                            <i class="el-icon-menu"></i>                            <span slot="title">导航二</span>                        </el-menu-item>                        <el-menu-item index="3" disabled>                            <i class="el-icon-document"></i>                            <span slot="title">导航三</span>                        </el-menu-item>                        <el-menu-item index="4">                            <i class="el-icon-setting"></i>                            <span slot="title">导航四</span>                        </el-menu-item>                    </el-menu>                </el-aside>                <el-main>                    <template>                        <div class="block">                            <span class="demonstration">默认 Hover 指示器触发</span>                            <el-carousel height="150px">                                    <el-carousel-item v-for="(item,index) in image" :key="index+1">                                        <img :src="item.img" alt="">                                        <h3 class="small">                                            <img :src="item.img" alt=""></h3>                                    </el-carousel-item>                            </el-carousel>                        </div>                    </template>                </el-main>            </el-container>            <el-footer>Footer</el-footer>        </el-container></div></template><script>    export default {           name: "myhome",        data () {               return{                   /*image: [                    // "img/00.jpg",                    "../assets/images/00.jpg",                    "../assets/images/01.jpg",                    "../assets/images/02.jpg",                    "../assets/images/03.jpg",                ],*/                image: [                    {   img:require("../assets/images/00.jpg")},                    {   img:require("../assets/images/01.jpg")},                    {   img:require("../assets/images/02.jpg")},                    {   img:require("../assets/images/03.jpg")},                ],                index: 0,            }        },        methods: {               handleOpen(key, keyPath) {                   console.log(key, keyPath);            },            handleClose(key, keyPath) {                   console.log(key, keyPath);            }        }    }</script><style scoped>    body, html, #box, #app {           padding: 0;        margin: 0;        height: 100% !important; /*强制*/    }    .el-avatar {           margin-top: 10px;    }    .el-header, .el-footer {           background-color: #B3C0D1;        color: #333;    }    .el-header div {           display: flex; /*流加载*/        justify-content: space-between;    }    .el-aside {           background-color: #D3DCE6;        color: #333;    }    /*    下拉框超出边框*/    .el-aside {           border: none;    }    .el-main {           background-color: #E9EEF3;        color: #333;    }    body > .el-container {           margin-bottom: 40px;    }    .el-container:nth-child(5) .el-aside,    .el-container:nth-child(6) .el-aside {           line-height: 260px;    }    .el-container:nth-child(7) .el-aside {           line-height: 320px;    }    .el-dropdown-link {           cursor: pointer;        color: #409EFF;    }    .el-icon-arrow-down {           font-size: 12px;    }    .el-carousel__item h3 {           color: #475669;        font-size: 14px;        opacity: 0.75;        line-height: 150px;        margin: 0;    }    .el-carousel__item:nth-child(2n) {           background-color: #99a9bf;    }    .el-carousel__item:nth-child(2n+1) {           background-color: #d3dce6;    }</style>

注意:
1、import A from ‘B’
这类语句相当于引入B(这一般是路径)然后给它起个名字叫做A;
2、routes定义时。
path为你以后页面间路由跳转的路径;
name亦可以作为条状的依据
component:这个是组件名,要和你引入组件时定义的名字保持一致。
3.代码一定要放到这里面,不能省略

如何把一个vue引入到当前页面

app.vue

<template>    <div id="app">        <img src="./assets/logo.png">        <router-link to="/">Home</router-link>        |        <router-link to="/about">About</router-link>        |        <router-link to="/hh">hh</router-link>        <ninana msg="ninana11111111111"/>        <HelloWorld msg="Welcome to Your Vue.js App"/>        <router-view/>    </div></template><script>    import HelloWorld from './components/HelloWorld.vue'    import ninana from './views/ninana.vue'    export default {           name: 'app',        components: {               HelloWorld,            ninana        }    }</script>

这时index.js不用引入路径了

ninana.vue

在这里插入图片描述

<template>    <div>你你你你</div></template><script>    export default {           name: "ninana",        props: {               msg: String        }    }</script><style scoped></style>
上一篇:thymeleaf字符串处理
下一篇:jquery ajax中不能给变量赋值的原因及解决办法

发表评论

最新留言

不错!
[***.144.177.141]2025年04月15日 10时29分37秒