vue + iview项目构建

2023-11-08

PS:vue.js有著名的全家桶系列,包含了vue-router,vuex, vue-resource,再加上构建工具vue-cli,就是一个完整的vue项目的核心构成。


使用Vue-cli是快速构建VUE项目

vue-cli是官方推荐的构建工具,简化了我们使用webpack的难度,并且支持热更新,所以我们只需要关注开发,从而省去了繁琐的服务重启以及webpack配置打包过程。

此处是vue-cli构建过程,git构建过程在文章末

//安装前需要配置node及npm环境
//全局安装 vue-cli 如果本机以前安装过  就无须执行避免重复安装 
$ npm install --global vue-cli
//创建一个基于 webpack 的vue项目
$ vue init webpack vue-iview-master // 后续按回车安装默认即可
//进入到创建的vue项目
$ cd vue-iview-master
//安装依赖
$ npm install
//启动项目
$ npm run dev //启动成功 http://localhost:8080 即可打开测试首页

我的构建过程

执行命令

$ vue init webpack vue-iview-master
  •  

打印信息

? Target directory exists. Continue? Yes
  A newer version of vue-cli is available.

  latest:    2.9.6
  installed: 2.9.3

'git' �����ڲ����ⲿ���Ҳ���ǿ����еij���
���������ļ���
? Project name vue-iview-master
? Project description vue iview project
? Author wq
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Set up unit tests Yes
? Pick a test runner jest
? Setup e2e tests with Nightwatch? Yes
? Should we run `npm install` for you after the project has been created? (recommended) npm

   vue-cli · Generated "vue-iview-master".
  •  

执行命令

$ npm run dev

打印信息

> vue-iview-master@1.0.0 dev G:\Git\public\vue-iview-master
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

 95% emitting

 DONE  Compiled successfully in 4029ms                                                           12:36:44

 I  Your application is running here: http://localhost:8080

安装iview

当前项目根目录执行命令

$ npm install --save iview

引入iview

src/main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import iView from 'iview' // 引入iview依赖
import 'iview/dist/styles/iview.css' // 引入iview css样式

Vue.config.productionTip = false
Vue.use(iView) //使用iview组件 

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

新加入了三行代码

import iView from 'iview' // 引入iview依赖
import 'iview/dist/styles/iview.css' // 引入iview css样式
Vue.use(iView) //使用iview组件 

项目中使用iview组件

做个简单的登录页面

src/components 新建 login.vue文件

<style>
html,body {
    width: 100%;
    height: 100%;
    background-color: #1c2438;
}
.login {
    width: 100%;
    height: 100%;
    background-color: #1c2438;
    position: relative;
}
.login .from-wrap{
    position: fixed;
    left: 50%;
    margin-left: -200px;
    top: 50%;
    margin-top: -150px;
    width: 400px;
    height: 240px;
    border-radius: 10px;
    background-color: #fff;
    padding: 20px 30px;
}
.login h2 {
    text-align: center;
    margin-bottom: 20px;
}
.login FormItem {
    margin-bottom: 15px;
}
.login .form-footer {
    text-align: right;
}
.ivu-form-item-required .ivu-form-item-label:before {
    display: none;
}
</style>
<template>
    <div class="login">
        <div class="from-wrap">
            <h2>登录</h2>
            <Form ref="loginData" :model="loginData" :rules="ruleValidate" :label-width="80">
                <FormItem label="Account" prop="acct">
                    <Input type="password" v-model="loginData.acct" placeholder="请输入账号"></Input>
                </FormItem>
                <FormItem label="Password" prop="pass">
                    <Input type="password" v-model="loginData.pass" placeholder="请输入密码"></Input>
                </FormItem>
                <FormItem class="form-footer">
                    <Button type="primary" @click="handleSubmit('loginData')">Submit</Button>
                    <Button type="ghost" @click="handleReset('loginData')" style="margin-left: 8px">Reset</Button>
                </FormItem>
            </Form>
        </div>
    </div>
</template>
<script>
export default {
  data () {
    return {
      loginData: {
        acct:'',
        pass:''
      },
      ruleValidate: {
        acct: [
            { required: true, message: '账号不能为空', trigger: 'blur' },
            { min: 3, max: 16, message: '账号长度3-16个字符', trigger: 'blur' }
        ],
        pass: [
            { required: true, message: '密码不能为空', trigger: 'blur' },
            { type: 'string', min: 6, max: 16, message: '密码长度6-16个字符', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    handleSubmit (name) {
      this.$refs[name].validate((valid) => {
        if (valid) {
          this.$Message.success('提交成功!')
        } else {
          this.$Message.error('表单验证失败!')
        }
      })
    },
    handleReset (name) {
        this.$refs[name].resetFields();
    }
  }
}
</script>

修改src/App.vue

<template>
  <div id="app">
    <login></login> // 显示组件
  </div>
</template>

<script>
import login from './components/login' // 引入login.vue组件
export default {
  name: 'App',
  components: {
    'login': login 
  }
}
</script>

<style>
</style>

接下来可以运行(可能会报错 下面有解决方案)

$ npm run dev

报错解决

1 Unexpected tab character错误

✘  http://eslint.org/docs/rules/no-tabs                   Unexpected tab character
src\components\login.vue:3:2
      width: 100%;
       ^
✘  http://eslint.org/docs/rules/no-tabs                   Unexpected tab character
src\components\login.vue:4:2
      height: 100%;
       ^
✘  http://eslint.org/docs/rules/no-tabs                   Unexpected tab character
src\components\login.vue:5:2
      background-color: #1c2438;
       ^
✘  http://eslint.org/docs/rules/no-tabs                   Unexpected tab character
src\components\login.vue:9:2
      <div class="wrap login">                                              
       ^                                                                    ......

解决

.eslintrc.js 文件 rules下添加 ‘no-tabs’: ‘off’

rules: {
  // allow async-await
  'generator-star-spacing': 'off',
  // allow debugger during development
  'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
  'no-tabs': 'off' // Unexpected tab character错误解决
}

2 Mixed spaces and tabs错误

原因是项目构建时设置eslint,主要是因为代码不规范报错。缩进不规范,分号不需要等原因 
最好是在项目构建时 Use ESLint to lint your code? (Y/n) 这一步选no

✘  http://eslint.org/docs/rules/no-mixed-spaces-and-tabs  Mixed spaces and tabs
src\components\login.vue:12:2
                   <Input type="password" v-model="loginData.user" placeholder="请输入账号"></Input>
        ^
 ✘  https://google.com/#q=vue%2Fno-parsing-error           Parsing error: x-invalid-end-tag
 src\components\login.vue:12:82
                   <Input type="password" v-model="loginData.user" placeholder="请输入账号"></Input>
                                                                                 ^
 ✘  http://eslint.org/docs/rules/no-mixed-spaces-and-tabs  Mixed spaces and tabs
 src\components\login.vue:13:2
               </FormItem>
        ^
 ✘  http://eslint.org/docs/rules/no-mixed-spaces-and-tabs  Mixed spaces and tabs
 src\components\login.vue:14:2
               <FormItem label="Password" prop="passwd">

解决

在 config/index.js 里配置 useEslint: false

useEslint: false,

解决错误后启动项目

npm run dev

启动成功

 DONE  Compiled successfully in 5198ms                                                  15:52:25

 I  Your application is running here: http://localhost:8080

login页面这里写图片描述

git项目源码构建过程

//解压安装包到英文路径下
//打开cmd窗口
//cd到当前项目根目录 我的是 G:\web\git\vue-iview-master>
//安装前需要配置node及npm环境
//初始化项目生成 Package.json等配置文件 
$ npm init -f
//安装依赖
$ npm install 
// 启动服务
$ npm run dev //成功后 以下命令不需要执行
------------------------------------------
//报错执行
//初始化项目生成 Package.json等配置文件 
$ npm init -f
//清除缓存
$ npm cache clean --force
//安装依赖
$ npm install
//启动服务
$ npm run dev
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue + iview项目构建 的相关文章

  • 如何从文件最后一行开始读取文件内容

    import java io import java util ArrayList 镜像图像 public class Solution public static void main String args throws Exceptio
  • adworld-EasyRE

    1 拿到exe文件 扔到exeinfo里面看一下 发现是32位无壳 2 扔到IDA里面 通过 shift F12 找字符串 发现 right 双击跟过去 发现sub 401080调用了这个字符串 跟过去 F5反编译 对于23行到30行的代码
  • nodejs(7)---中间件的使用

    中间件相当于过滤器模式 当前端发送信息到后端的时候 先经过中间件进行验证信息 再到后台调用接口获取数据 我们看看node中中间件怎么使用 一个中间件的完整形式是这样的 function demo middleware err req res
  • MySQL数据库的异步写入

    注意 数据库pymysql的commit 和execute 在提交数据时 都是同步提交至数据库 由于scrapy框架数据的解析和异步多线程的 所以scrapy的数据解析速度 要远高于数据的写入数据库的速度 如果数据写入过慢 会造成数据库写入
  • 回文序列 c++实现

    目录 题目 代码 解法1思路 解法2思路 题目 回文序列指的是从前往后遍历得到的序列和从后往前遍历完全相同的序列 现在给你n个整数a1 a2 an 需要你判断这个序列是否为回文序列 是输出1 不是输出0 代码 include
  • 树莓派搭建Obsidian LiveSync同步数据

    树莓派搭建Obsidian LiveSync同步数据 一 Docker安装couchdb数据库 在 usr local中创建couchdb文件夹 mkdir couchdb 在couchdb文件夹中创建local ini文件 touch l
  • Flutter框架详解

    跨平台框架常识 单页面应用 跨平台框架的设计理念 跨平台框架的架构 Flutter 核心架构 Flutter Framework dart ui library Rendering library Widget library Materi
  • 学习 Rust cookbook 之算法篇(algorithm)part 2

    原文作者 suhanyujie 永久链接 https github com suhanyujie rust cookbook note 博客链接 https ishenghuo cnblogs com 学习 Rust cookbook 之算
  • 计算机word文档无法工作,win10所有word文档都打不开如何解决_win10电脑所有word文档无法打开解决教程...

    word是我们经常会用到的文档编辑工具 用户们都会在电脑中安装使用 不过使用的时候难免遇到一些问题 比如有win10 ghost 纯净版系统用户要打开word文档的时候发现电脑中所有word文档都打不开了 这是什么情况呢 为此 win7之家
  • uniapp 原生puls和uniapp权限授权 代码

    我们可以用plus里面的方法打包App 开启权限 也可以通过uniapp里面的App权限设置开始权限授权 下面就简单介绍 代码的使用
  • Java lambda 使用index

    public static
  • 3d数学之向量详解

    向量的定义 既有大小又有方向的量称之为向量 与之相对应的是标量 标量是只有大小没有方向的量 一个向量的一般在头上添加一个箭头表示 比如向量V 可以表示为 V vec V V 游戏中一般以二维向量跟三维向量居多 例如一个由A点指向B点的向量
  • erp仓库管理系统,适合各种行业的仓库,有供应商管理 ,商品管理

    erp仓库管理系统 适合各种行业的仓库 有供应商管理 商品管理 客户管理 销售管理 收款管理 付款管理 销售明细管理 采购明细管理 多仓库调拨管理4110622654117171凤皇培训学校
  • 晶体(crystal、无源晶振)两端电容取值计算

    数字电路中往往会需要一个时钟源 常用的比如晶体振荡器 oscillator 有源晶振 晶体 crystal 无源晶振 等 一般晶体用的更多些 对于晶体来说 一般电路设计时会在晶体两端各接一个电容到地 如下图所示 上面电路中晶体两端的电容是用
  • D类功率放大器

    深度剖析D类功率放大 http DXdlgf 我们知道 功率放大器一般分为甲类 乙类 甲乙类 丙类 丁类 即D类 和戊类等多种工作方式 为了提高功率和效率 一般的方法是降低三极管的静态工作点及由甲类到乙类 甚至到丙类 甲类 乙类 甲乙类的工
  • cublasCgetrfBatched cublasCgetriBatched sample

    This example demonstrates how to use the CUBLAS library by scaling an array of floating point values on the device and c
  • Mysql第三章:存储引擎(MyISAM和Innodb)

    目录 1 什么是存储引擎 2 常用存储引擎 2 1 MyISAM特点 2 2 Innodb特征 2 2 1 Innodb优点 2 2 2 innoDB内存模型 3 MVCC多版本控制器 3 1 首先了解事务ACID 的实现 3 2 首先了解
  • Nginx的配置与部署及例子

    Nginx的配置与部署及例子 1 Nginx程序包 目前最新的开发版本时1 1 12 Linux Unix nginx 1 1 12 tar gz Windows nginx 1 1 12 zip 我们可以下载稳定版尝试 Linux Uni
  • UE4/UE5 使用Unreal Datasmith完全教程

    插件整理下载 点击下载 UE4 4 19 UE5 5 3 官方 入口 Datasmith支持导入Twinmotion Twinmotion教程汇总 2021 4 2 Datasmith安装到4 20 4 23版本 UE4 在4 20 23版
  • iis ajax json,IIS配置jquery ajax、 json,mp4文件支持

    11 条件加载Jquery 如果CDN没有下载到Jquery 则从本地读取 在MIME增加一个Json类型 在MIME增加一个配置如 添加 gt 文件扩展名为 JSON MIME类型为text json 也有将application x j

随机推荐

  • 深度学习的归一化方法

    目录 1 为什么使用 Normalization 2 BatchNorm vs LayerNorm 适用场景 工作原理 3 GroupNorm 本次介绍一下各种归一化方法 包括 BatchNorm LayerNorm InstanceNor
  • 使用albumentations库进行数据增强

    需要注意增强之后以字典键值的形式调用输出 且可以保证img gt的随机增强是一一对应一致的 import albumentations as albu tfrd albu Compose albu HorizontalFlip p 0 5
  • 关于SpringBoot中pom.xml中<plugin>报错

    报错部分代码
  • PTAWindows消息队列c++版——山东科技大学

    题目 消息队列是Windows系统的基础 对于每个进程 系统维护一个消息队列 如果在进程中有特定事件发生 如点击鼠标 文字改变等 系统将把这个消息加到队列当中 同时 如果队列不是空的 这一进程循环地从队列中按照优先级获取消息 请注意优先级值
  • [Tools] SecureCRT文件传输模式介绍

    如下图所示 SecureCRT有5种文件传输模式 1 ASCII 最快的传输模式 但只能传文本 2 Binary 只能传二进制文件 3 Xmodem 非常古老的传输协议速度较慢 但由于使用了CRC错误侦测方法 传输的准确率可高达99 6 4
  • PAT 1103 Integer Factorization

    题目的意思是给定n k p 求是否存在k个正整数 每个数的p次幂相加的结果等于n 有 输出k个数相加的结果最大的那个 如果有多个 输出序列从大到小排最大的那个 从左往右比较 若 i lt l a i
  • 查看端口占用情况(Windows环境)

    查看端口占用情况 1 打开命令窗口 以管理员身份运行 2 查询所有端口的占用情况 3 查看指定端口的占用情况 4 查看是哪个进程或者程序占用了相应的端口 5 解决端口占用问题 1 打开命令窗口 以管理员身份运行 window R组合键 输入
  • C++——RAII机制

    文章目录 我们知道 资源的使用一般经历三个步骤 a 获取资源 b 使用资源 c 销毁资源 资源的销毁往往是程序员经常忘记的一个环节 忘记销毁资源可能会造成内存泄露 怎么解决呢 RAII RAII Resource Acquisition I
  • Nginx配置错误

    漏洞概述 PHPUnit 是 PHP 程式语言中最常见的单元测试 unit testing 框架 通常phpunit使用composer非常流行的PHP依赖管理器进行部署 将会在当前目录创建一个vendor文件夹 phpunit生产环境中仍
  • Django 模型(model)

    目录 前言 一 Django ORM 什么是ORM ORM 解析过程 ORM 对应关系表 二 数据库配置 Django 如何使用 mysql 数据库 三 定义模型 创建 APP 四 定义模型类 数据库表名 关于主键 属性命名限制 字段类型
  • 二、【React拓展】懒加载 lazy

    文章目录 1 适用点 2 汇总 1 适用点 懒加载往往配合路由一起使用 此处修改的项目是 二 React Router5 路由的基本使用 中的项目 首先从react中引入lazy import lazy from react 修改引入路由组
  • 【Windows API】获取卷标、卷名

    1 卷 gt 卷标 使用FindFirstVolume 和FindNextVolume 函数体系 枚举系统所有卷 Volume 的例子 然后获取卷标 卷类型 这个方式可以枚举出没有驱动器号 卷标 的卷 int TestMode1 HANDL
  • 国信证券笔试题总分120分

    国信证券笔试题总分120分 1 选择题60分 20题 单选 10 每题3分 多选 10 每题3分 2 业务题 每题4分总共20分 2 1 post get请求区别 后退按钮 刷新 无害 数据会被重新提交 浏览器应该告知用户数据会被重新提交
  • 微软DeepSpeed Chat震撼发布,一键RLHF训练千亿级大模型

    一键解锁千亿级ChatGPT 轻松省钱15倍 众所周知 由于OpenAI太不Open 开源社区为了让更多人能用上类ChatGPT模型 相继推出了LLaMa Alpaca Vicuna Databricks Dolly等模型 但由于缺乏一个支
  • PostgreSQL数据库性能监控手段之慢SQL、死锁

    之前接触PostgreSQL数据库甚少 此前经常使用mysql db2 直至入职当前某安全公司后 发现数据库都采用PostgreSQL 由于负责性能测试方向 经常需要诊断数据库方面是否存在性能问题 于是整理了PostgreSQL设置慢SQL
  • 接口调用失败,失败原因:在 ServiceModel 客户端配置部分中,找不到引用协定的默认终结点元素

    我的程序中 已经配置了webserivce了 但是无法再开发环境使用 我想拿到测试环境使用 而webservice又只能在开发环境调用 这个时候 为了解决这种尴尬问题 我只能先将就着用开发时的webservice 在我的web config
  • 18款最佳Bug跟踪管理系统

    对于开发者来说 Bug 往往是他们最头疼的问题 有些 Bug 会隐藏的很深 很难发现 甚至用户已经使用了才出现 这样真是赔了名声又折钱 为了让开发者更早地发现和消灭 Bug 本文收集了 18 款最佳的 Bug 处理应用程序 这些系统有收费也
  • 本地文件上传到linux服务器的几种方法

    本文介绍几种常见的方法 把文件上传到Linux服务器中 飓风科技常见有使用 scp命令 xshell软件里的xftp程序 U盘挂载 服务器自带的lrzsz程序 一 scp使用说明 1 把本机的文件传给目的服务器 1scp get66 pca
  • Linux 安装/卸载 Minio

    安装 创建目录 root t2 local mkdir minio root t2 local cd minio root t2 minio mkdir data 下载 root t2 minio wget https dl min io
  • vue + iview项目构建

    vue js官网 iview vue cli PS vue js有著名的全家桶系列 包含了vue router vuex vue resource 再加上构建工具vue cli 就是一个完整的vue项目的核心构成 使用Vue cli是快速构