Vue-cli搭建SPA项目

2023-09-22 11:29:33

前言

Vue CLI(Vue Command Line Interface)是一个用于快速搭建基于Vue.js的前端项目的工具。它是Vue.js官方提供的一个脚手架工具,旨在简化Vue.js项目的开发过程。Vue CLI提供了一些强大的功能,帮助开发者轻松创建、开发和构建Vue.js应用程序

Vue CLI的主要特点和功能:

  1. 快速创建项目: Vue CLI允许开发者通过命令行轻松创建新的Vue.js项目,包括配置文件、目录结构和一些默认的依赖项。

  2. 开发服务器: Vue CLI集成了一个开发服务器,可以在开发过程中实时预览应用程序的变化。这意味着你可以在开发过程中立即看到你的修改,无需手动刷新浏览器。

  3. 插件系统: Vue CLI支持插件系统,可以通过插件扩展项目的功能。这使得集成各种工具和库变得更加容易,例如添加路由管理、状态管理或国际化等。

  4. 配置文件: Vue CLI提供了一个配置文件(vue.config.js),允许你对构建和开发过程进行高度定制。你可以在配置文件中设置构建选项、代理、自定义Webpack配置等。

  5. Vue CLI UI: 除了命令行界面,Vue CLI还提供了一个图形用户界面(Vue CLI UI),使得配置和管理项目变得更加直观和用户友好。

  6. 内置构建工具: Vue CLI集成了现代的前端构建工具,如Webpack和Babel,以便优化和打包你的应用程序,以便在生产环境中使用。

总之,Vue CLI是一个强大的工具,可帮助开发者更轻松地创建、开发和部署Vue.js应用程序。它使得Vue.js项目的管理和配置变得更加简单,用于自动生成vue.js+webpack的项目模板

一.环境搭建

1.首先安装vue-cli

在cmd窗口中输入以下命令

npm install -g vue-cli

验证是否安装成功

安装完成之后打开命令窗口并输入 vue -V(注意这里是大写的“V”),如果出现相应的版本号,则说明安装成功

2.使用脚手架创建项目骨架 

(1)进入要创建项目的目录

cmd命令:cd 项目路径

或者是直接在要创建的目录的地址栏输入cmd命令直接进入

(2)cmd窗口输入命令创建项目

vue init webpack 项目名

 

cmd命令行窗口显示中文乱码,多是因为cmd命令行窗口字符编码不匹配导致

修改cmd窗口字符编码为UTF-8,命令行中执行:chcp 65001

切换回中文:chcp 936

这两条命令只在当前窗口生效,重启后恢复之前的编码

(3)一问一答模式

 1.Project name:项目名,默认是输入时的那个名称spa1,直接回车

         2.Project description:项目描述,直接回车

         3.Author:作者,随便填或直接回车

         4.Vue build:选择题,一般选第一个

           4.1Runtime + Compiler: recommended for most users//运行加编译,官方推荐,就选它了

           4.2Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specific HTML) are ONLY allowed in .vue files

              - render functions are required elsewhere//仅运行时,已经有推荐了就选择第一个了

         5.Install vue-router:是否需要vue-router,Y选择使用,这样生成好的项目就会有相关的路由配置文件

         6.Use ESLint to lint your code:是否用ESLint来限制你的代码错误和风格。N  新手就不用了,但实际项目中一般都会使用,这样多人开发也能达到一致的语法

         7.Set up unit tests:是否安装单元测试 N

         8.Setup e2e tests with Nightwatch?:是否安装e2e测试  N

         9.Should we run `npm install` for you after the project has been created? (recommended) (Use arrow keys)

           > Yes, use NPM                    

             Yes, use Yarn

             No, I will handle that myself     //选择题:选第一项“Yes, use NPM”是否使用npm install安装依赖

 

        全部选择好回车就进行了生成项目,出现如下内容表示项目创建完成

当出现以下界面才能说明安装成功了

 (4)启动项目

cd 刚刚创建的项目名

然后输入以下命令启动项目

 npm run dev

 出现以上界面说明创建成功

通过浏览器访问地址

二. spa项目入门

1.vue项目结构说明

  build文件夹: 这个文件夹主要是进行webpack的一些配置

 webpack.base.conf.js webpack基础配置,开发环境,生产环境都依赖
webpack.dev.conf.js webpack开发环境配置
 webpack.prod.conf.jswebpack生产环境配置
build.js生产环境构建脚本
vue-loader.conf.js此文件是处理.vue文件的配置文件

   config文件夹

dev.env.js配置开发环境
prod.env.js配置生产环境
index.js 这个文件进行配置代理服务器,例如:端口号的修改

   node_modules文件夹 :存放npm install时根据package.json配置生成的npm安装包的文件夹

   src文件夹:源码目录(开发中用得最多的文件夹)

assets  共用的样式、图片
components业务代码存放的地方,里面分成一个个组件存放,一个页面是一个组件,一个页面里面还会包着很多组件
router 设置路由
App.vuevue文件入口界面
main.js 对应App.vue创建vue实例,也是入口文件,对应webpack.base.config.js里的入口配置  
static文件夹存放的文件不会经过webpack处理,可以直接引用,例如swf文件如果要引用可以在webpack配置对swf后缀名的文件处理的loader,也可以直接将swf文件放在这个文件夹引用
package.json这个文件有两部分是有用的:scripts 里面设置命令以及在dependencies和devDependencies中,分别对应全局下载和局部下载的依赖包

2. 什么是*.vue文件

   *.vue 文件,是一个自定义的文件类型,用类似HTML的语法描述一个Vue组件。

   每个.vue文件包含三种类型的顶级语言块 <template>, <script> 和 <style>。

   这三个部分分别代表了 html,js,css。

注1:不能直接把html代码包裹在<template></template>中,而是必须在里面方置一个html标签来包裹所有的代码

        一般情况是使用<div></div>标签包含其它的代码(保证只有一个根元素)

         <template>

           <div>...</div>

         </template>

   注2:js代码写在<script>标签中,并通过export导出

        <script>

          export default {

             name: 'App'

          }

        </script>

3.嵌套路由案例演示

3.1定义基本路由

(1)模板文件

<router-link to="/Home">首页</router-link>
<router-link to="/About">关于</router-link>

(2)路由

在主路由中

{
      path: '/Home',
      name: 'Home',
      component: Home
    },
    {
      path: '/About',
      name: 'About',
      component: About
    },

3.2 定义子路由

在当前主路由中配置子路由

{
      path: '/About',
      name: 'About',
      component: About,
      children:[
        {
          {
            path: '/AboutMe',
            name: 'AboutMe',
            component: AboutMe
          },
          {
            path: '/AboutWebsite',
            name: 'AboutWebsite',
            component: AboutWebsite
          },
        }
      ]
    },

3.3分别定义两个子路由的模板文件

<template>
  <div>
    关于本站介绍内容
  </div>
</template>

<script>
  export default {
    name: 'AboutWebsite',
    data () {
      return {
        msg: 'Welcome to Your Vue.js App'
      }
    }
  }
</script>
<template>
  <div>
    关于站长
  </div>
</template>

<script>
  export default {
    name: 'AboutMe',
    data () {
      return {
        msg: 'Welcome to Your Vue.js App'
      }
    }
  }
</script>

3.4在主路由中挂载内容

<template>
  <div>
    <router-link to="/AboutMe">关于本站</router-link>
    <router-link to="/AboutWebsite">关于站长</router-link>
    <router-view></router-view>
  </div>
</template>

测试效果

 

今天的分享到这里就结束了,感谢各位大大的观看,各位大大的三连是博主更新的动力,感谢谢谢谢谢谢谢谢谢各位的支持!!!!! 

更多推荐

企业电子招标采购系统源码之从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理

功能描述1、门户管理:所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含:招标公告、非招标公告、系统通知、政策法规。2、立项管理:企业用户可对需要采购的项目进行立项申请,并提交审批,查看所有的立项信息。主要功能包含:招标立项申请、非招标立项申请、采购立项管理。3、采购项目管理:可对项目采购过程全流程管

HCL Domino LEAP与新的软件下载门户站点

大家好,才是真的好。还记得DominoVolt吗?是的,我前面花了不少时间来讲基于Domino平台上的低代码开发工具Volt,不下十篇,我记得最后一篇是《DominoVolt1.0.5中的可视化流程设计器》。结果就在去年11月,HCL将该该工具重新命名为HCLDominoLeap,可能是为了避免和HCL最近热推的Vol

【工作】-处理快速切换 Tab 导致列表数据不正确的情况

采取以下方案来解决:取消之前的请求:在切换到新的Tab之前,首先检查是否有之前的请求正在进行中。如果是,可以使用取消请求的机制中止之前的请求,以确保不会更新当前Tab的数据。你可以使用类似Axios提供的canceltoken来取消请求。防止并发请求:为了避免并发请求导致数据不正确,你可以在发起新请求之前添加一个标记来

视觉设计师提升自己能力的经验优漫动游

1、业余时间视觉设计师提升自己能力的经验还经常听到一种抱怨”产品有限制,我所擅长发挥不出来”,这样无疑是把自己的设计专业成长寄托在产品上。认为产品不成功自己的设计就不能成长。这其实是个借口。其实面对这个问题,最好的办法就是把设计分2条线:1.项目线:公司的实际产品项目,理解并按照实际情况,满足产品设计需求并达到公司要求

Flask框架-2-[单聊]: flask-socketio实现websocket的功能,实现单对单聊天,flask实现单聊功能

一、概述和项目结构在使用flask-socketio实现单聊时,需要将会话id(sid)与用户进行绑定,通过emit('事件','消息',to=sid),就可以把消息单独发送给某个用户了。flask_websocket|--static|--js|--jquery-3.7.0.min.js|--socket.io_4.

基于STM32设计的校园一卡通(设计配套的手机APP)

一、功能介绍【1】项目介绍随着信息技术的不断发展,校园一卡通作为一种高效便捷的管理方式,已经得到了广泛的应用。而其核心部件——智能卡也被越来越多的使用者所熟知。本文介绍的项目是基于STM32设计的校园一卡通消费系统,通过RC522模块实现对IC卡的读写操作,利用2.8寸TFT触摸屏(驱动芯片是ILI9341)作为交互界

【自学开发之旅】Flask-前后端联调-异常标准化返回(六)

注册联调:前端修改:1.修改请求向后端的url地址文件:env.development修改成VITE_API_TARGET_URL=http://127.0.0.1:9000/v1登录:token验证校验forms/user.pyfromwerkzeug.securityimportcheck_password_has

redis漏洞修复:(CNVD-2019-21763)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、漏洞内容二、镜像准备1.确认镜像版本2.下载镜像三、配置文件准备1.获取配置文件2.修改配置文件四、启动redis容器五、修改iptables文件总结前言漏扫发现机器上基于容器运行的redis的访问权限没有限制,需要增加安全配置。现在使用的

Linux图形界面与字符界面切换

1.启动时进入字符界面,后来想切换到图形界面:使用startx或init5(注:startx只是在原有运行级别3上加了图形界面,运行级别没变,而init5则是切换到运行级别5,所以要重新登录。可用runlevel命令查看当前运行级别和上一次运行级别)2.启动时进入图形界面,后来想切换到字符界面:使用Ctrl+Alt+F

Unity中UI组件对Shader调色

文章目录前言一、原理在Shader中直接暴露的Color属性,不会与UI的Image组件中的Color形成属性绑定。因为UI的Image组件中更改的颜色是顶点颜色,如果需要在修改组件中的颜色时,使Shader中的颜色也同时改变。那么就需要在应用程序阶段传入到顶点着色器的数据增加一个变量,用于给顶点着色器使用。二、实现1

【C语言基础】枚举和联合体

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】📢:文章若有幸对你有帮助,可点赞👍收藏⭐不迷路🙉📢:内容若有错误,敬请留言📝指正!原创文,转载请注明出处文章目录前言一、枚举1.1枚举的含义1.

热文推荐