vue项目搭建过程

本文档详细介绍了使用Vue框架搭建项目的步骤,包括安装iview框架、删除初始页面、创建自定义导航组件navLayout、配置路由、设置vue.config.js、引入并使用axios进行API调用,以及改造菜单栏为展示子菜单的结构。
摘要由CSDN通过智能技术生成

1.安装对应的框架 - iview

npm install view-design --save
main.js


import ViewUI from 'view-design'
import 'view-design/dist/styles/iview.css'

Vue.use(ViewUI)

2.删除不需要的页面,比如:HelloWorld.vue   About.vue ,需要删除对应的引用

3.在App.vue  删除不需要的组件

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

<style lang="scss">
  html, body, #app {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
  }
</style>

4.在components中新建菜单栏组件 navLayout 

<template>
  <div class="layout">
    <Layout style="height: 100%;">
      <Sider ref="side1" hide-trigger collapsible :collapsed-width="78" v-model="isCollapsed">
        <Menu active-name="1-2" theme="dark" width="auto" :class="menuitemClasses">
          <MenuItem name="1-1">
            <Icon type="ios-navigate"></Icon>
            <span>Option 1</span>
          </MenuItem>
          <MenuItem name="1-2">
            <Icon type="ios-search"></Icon>
            <span>Option 2</span>
          </MenuItem>
          <MenuItem name="1-3">
            <Icon type="ios-settings"></Icon>
            <span>Option 3</span>
          </MenuItem>
        </Menu>
      </Sider>
      <Layout>
        <Header :style="{padding: 0}" class="layout-header-bar">
          <Icon @click.native="collapsedSider" :class="rotateIcon" :style="{margin: '0 20px'}" type="md-menu" size="24"></Icon>
        </Header>
        <Content :style="{margin: '20px', background: '#fff', minHeight: '260px'}">
          <router-view ref="childrenmode"></router-view>
        </Content>
      </Layout>
    </Layout>
  </div>
</template>

<script>
export default {
  name: 'navLayout',
  data () {
    return {
      isCollapsed: false
    }
  },
  computed: {
    rotateIcon () {
      return [
        'menu-icon',
        this.isCollapsed ? 'rotate-icon' : ''
      ]
    },
    menuitemClasses () {
      return [
        'menu-item',
        this.isCollapsed ? 'collapsed-menu' : ''
      ]
    }
  },
  methods: {
    collapsedSider () {
      this.$refs.side1.toggleCollapse()
    }
  }
}
</script>

<style scoped>
  .layout{
    background: #f5f7f9;
    position: relative;
    overflow: hidden;
    height: 100%;

  }
  .layout-header-bar{
    background: #fff;
    box-shadow: 0 1px 1px rgba(0,0,0,.1);
  }
  .layout-logo-left{
    width: 90%;
    height: 30px;
    background: #5b6270;
    border-radius: 3px;
    margin: 15px auto;
  }
  .menu-icon{
    transition: all .3s;
  }
  .rotate-icon{
    transform: rotate(-90deg);
  }
  .menu-item span{
    display: inline-block;
    overflow: hidden;
    width: 69px;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: bottom;
    transition: width .2s ease .2s;
  }
  .menu-item i{
    transform: translateX(0px);
    transition: font-size .2s ease, transform .2s ease;
    vertical-align: middle;
    font-size: 16px;
  }
  .collapsed-menu span{
    width: 0px;
    transition: width .2s ease;
  }
  .collapsed-menu i{
    transform: translateX(5px);
    transition: font-size .2s ease .2s, transform .2s ease .2s;
    vertical-align: middle;
    font-size: 22px;
  }
</style>

5.在router/index.js中引入,并且修改路径

import Vue from 'vue'
import VueRouter from 'vue-router'
import navLayout from '../components/navLayout'

Vue.use(VueRouter)

const routes = [
  {
    path: '/nav',
    name: 'navLayout',
    component: navLayout,
    children: [
      {
        path: '/home',
        name: '首页',
        component: resolve => require(['@/views/Home'], resolve)
      }
    ]
  }
]

const router = new VueRouter({
  routes
})

export default router

6.在项目里新建vue.config.js,路径如图

module.exports = {
  configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      // 为生产环境修改配置...
    } else {
      // 为开发环境修改配置...
    }
  },
  // 基本路径
  publicPath: "./",
  // 放置静态资源的目录
  assetsDir: "static",
  lintOnSave: true,
  devServer: {
    open: true, // 是否自动弹出浏览器界面
    port: 8080, // 端口号
    https: false, //通过 HTTP 提供服务
    hotOnly: false, // 启用热模块更换(请参阅devServer.hot服务器)如果生成失败,没有页面刷新作为回退。
    // 查阅 https://github.com/vuejs/vue-docs-zh-cn/blob/master/vue-cli/cli-service.md#配置代理
    //后端服务
    proxy: {
      '/api': {
        target: 'http://xxxx1:xxx/', //测试网址1
        changeOrigin: true,
        secure: false,
        pathRewrite: {
          "^/api": ""
        }
      },
      '/foo': {
        target: 'http://xxxx2:xxx/', //测试网址2
        changeOrigin: true,
        secure: false,
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值