vue前端工程的搭建


Posted in Vue.js onMarch 31, 2021

一、用vue-cli搭建前端工程

1、什么是vue-cli

vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;

2、搭建环境准备

  • 安装node.js 官方网址: http://nodejs.cn/download/

    • node -vnpm -v 用于检测是否安装成功
  • 安装淘宝镜像加速器:

    npm install cnpm -g
  • 安装vue-cli

    cnpm install vue-cli -g
    #查看是否安装成功
    vue list

3.vue-cli项目的搭建

1.选择一个盘区建立一个空文件夹,用于存放当前项目

2.用cmd命令进入当前新建空文件下,执行

vue init webpack xxx                   xxx表示项目名

3.进入项目名中,建立依赖包

cd xxx 
npm install  
npm run dev

4.使用webpack打包项目

4.1 什么是webpack?

WebPack 是一款模块加载器兼打包工具,它能把各种资源,如 JS、JSX、ES6、SASS、LESS、图片等都作为模块来处理和使用。

4.2 安装webpack

npm install webpack -g
npm install webpack-cli -g

测试是否安装成功

webpack -v
webpack-cli -v

5.使用webpack

在命令台输入:

webpack

6.vue-router路由的使用

6.1 什么是vue-router?

Vue Router是Vue.js官方的路由管理器(路径跳转),负责页面的跳转。

6.2 vue-router的功能

  • 嵌套的路由/视图表
  • 路由参数、查询、通配符
  • 模块化的、基于组件的路由配置

6.3 vue-router的安装
打开命令行工具,进入项目目录,输入下面命令:

npm install vue-router --save-dev

安装完成后,在项目的包路径下,会产生一个vue-router包

6.4 vue-router 案例实现

1、在src的component目录下新建content.vue,main.vue,sun.vue,在src下建立router,

vue前端工程的搭建

2.sun.vue

<template>
    <h1>sun shile</h1>
</template>

<script>
    export default {
        name: "sun"
    }
</script>

<style scoped>

</style>

3.index.html

import Vue from 'vue'
import VueRouter from "vue-router";
import content from "../components/content"
import main from "../components/main"
import sun from "../components/sun"

//安装路由
Vue.use(VueRouter)


//配置导出路由
export default new VueRouter({
  routes:[
    {
      //路由路径
        path:'/content',
      //跳转的组件
      component:content
    },
  {
    //路由路径
    path:'/main',
    //跳转的组件
    component:main
  },
    {
      //路由路径
      path:'/sun',
      //跳转的组件
      component:sun
    }
  ]
});

4.在main.js中配置路由

import Vue from 'vue'
import App from './App'
import router from './router' //自动扫描里面的路由布置
Vue.config.productionTip = false

new Vue({
  el: '#app',
  //配置路由
  router,
  components: { App },
  template: '<App/>'
})

5.App.vue

<template>
  <div id="app">
    <h1>study</h1>
    <router-link to="/main">首页</router-link>
    <router-link to="/content">内容项</router-link>
    <router-link to="/sun">其他项</router-link>
    <router-view></router-view>
  </div>
</template>

<script>
import content from './components/content'
export default {
  name: 'App',
  components:{
    content
  }

}
</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>

6.启动 npm run dev

vue前端工程的搭建

二、vue + ElementUI

创建工程目录:

vue init webpack project1

安装项目依赖,vue-router,element-ui,sass-loader和node-sass等插件

#进入工程目录
cd project1
# 安装依赖
npm install
# 安装 vue-router
npm install vue-router --save-dev
# 安装 element-ui
npm i element-ui -s
# 安装SASS加载器
npm install --save-dev sass-loader  
npm install --save-dev node-sass  
# 项目启动
npm run dev

2.1.Npm命令解释

  • npm install moduleName:安装模块到项目目录
  • npm install -g moduleName:-g 的意思是将模块安装到全局,具体安装到磁盘的哪个位置,要看 npm config prefix的位置
  • npm install moduleName -save:–save的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖,-S为该命令的缩写
  • npm install moduleName -save-dev:–save-dev的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖,-D为该命令的缩写

2.1、Element的使用

在main.js中引入

import Vue from 'vue'
import App from './App'
//自动扫描里面的路由布置
import router from './router' 
//导入elementUI
import ElementUI from "element-ui"
//导入element css
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(router);
Vue.use(ElementUI)


Vue.config.productionTip = false

new Vue({
  el: '#app',
  router,
  render: h => h(App),//ElementUI规定这样使用
})

案例实现:

1.在src目录下创建一个components文件夹,该文件下存放vue组件。

main.vue

<template>
  <h1>首页</h1>
</template>
<script>
    export default {
        name: "Main"
    }
</script>
<style scoped>
</style>

login.vue(element-ui)

<template>
  <div>
    <el-form ref="loginForm" :model="form" :rules="rules" label-width="80px" class="login-box">
      <h3 class="login-title">欢迎登录</h3>
      <el-form-item label="账号" prop="username">
        <el-input type="text" placeholder="请输入账号" v-model="form.username"/>
      </el-form-item>
      <el-form-item label="密码" prop="password">
        <el-input type="password" placeholder="请输入密码" v-model="form.password"/>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" v-on:click="onSubmit('loginForm')">登录</el-button>
      </el-form-item>
    </el-form>

    <el-dialog
      title="温馨提示"
      :visible.sync="dialogVisible"
      width="30%"
      :before-close="handleClose">
      <span>请输入账号和密码</span>
      <span slot="footer" class="dialog-footer">
        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
  export default {
    name: "Login",
    data() {
      return {
        form: {
          username: '',
          password: ''
        },

        // 表单验证,需要在 el-form-item 元素中增加 prop 属性
        rules: {
          username: [
            {required: true, message: '账号不可为空', trigger: 'blur'}
          ],
          password: [
            {required: true, message: '密码不可为空', trigger: 'blur'}
          ]
        },

        // 对话框显示和隐藏
        dialogVisible: false
      }
    },
    methods: {
      onSubmit(formName) {
        // 为表单绑定验证功能
        this.$refs[formName].validate((valid) => {
          if (valid) {
            // 使用 vue-router 路由到指定页面,该方式称之为编程式导航
            this.$router.push("/main");
          } else {
            this.dialogVisible = true;
            return false;
          }
        });
      }
    }
  }
</script>

<style lang="scss" scoped>
  .login-box {
    border: 1px solid #DCDFE6;
    width: 350px;
    margin: 180px auto;
    padding: 35px 35px 15px 35px;
    border-radius: 5px;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    box-shadow: 0 0 25px #909399;
  }

  .login-title {
    text-align: center;
    margin: 0 auto 40px auto;
    color: #303133;
  }
</style>

3,创建路由(在src目录下创建router文件夹, 并在router 目录下创建一个名为 index.js 的 vue-router 路由配置文件)

import Vue from "vue";
import Router from "vue-router";
import Main from "../views/Main";
import Login from "../views/Login";

Vue.use(Router);

export default new Router({
  routes: [
    {
      path: '/main',
      component: Main
    },
    {
      path: '/login',
      component: Login
    }
  ]
});

4.在main.js中配置相关信息

5.在App.vue中配置显示视图

<template>
  <div id="app">
    <router-link to="/login">login</router-link>
    <router-view></router-view>
  </div>
</template>
<script>
export default {
  name: 'App',
}
</script>

6.测试运行

npm run dev

登录界面显示

vue前端工程的搭建

==注:==如果sass-loader版本引发错误,可在package.json文件里的 "sass-loader"里更换版本,例如:“sass-loader”: “^7.3.1”。

实用工具:
docsify文档生成工具 .

Vue.js 相关文章推荐
如何实现vue的tree组件
Dec 03 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
vue中三级导航的菜单权限控制
Mar 31 Vue.js
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
vue实现可拖拽的dialog弹框
May 13 Vue.js
vue实现列表拖拽排序的示例代码
Apr 08 Vue.js
vue中data改变后让视图同步更新的方法
vue3如何优雅的实现移动端登录注册模块
开发一个封装iframe的vue组件
如何让vue长列表快速加载
Vue3 Composition API的使用简介
vue+django实现下载文件的示例
vue路由实现登录拦截
You might like
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
Chrome Web App开发小结
2014/09/04 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
php获取url参数方法总结
2014/11/13 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
JS 控件事件小结
2012/10/31 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
JS正则表达式常见用法实例详解
2018/06/19 Javascript
微信内置开发 iOS修改键盘换行为搜索的解决方案
2019/11/06 Javascript
vue-cli3项目升级到vue-cli4 的方法总结
2020/03/19 Javascript
python取代netcat过程分析
2018/02/10 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
基于Python实现用户管理系统
2019/02/26 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
如何卸载python插件
2020/07/08 Python
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
学生干部培训方案
2014/06/12 职场文书
小学生大队委竞选稿
2015/11/20 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript