Vue06.使用vue-cli创建一个spa项目

简介: Vue06.使用vue-cli创建一个spa项目

spa----单页Web应用(single page application,SPA)

1.前提

nodeJS环境已经搭建完毕

node -v
npm -v

2. 利用Vue-cli来构建spa项目

1.什么是Vue-cli

vue-cli是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,创建命令如下:

vue init webpack xxx

注1:xxx 为自己创建项目的名称

注2:必须先安装vue,vue-cli,webpack,node等一些必要的环境

2.安装vue-cli

npm install -g vue-cli # -g表示全局安装
npm install webpack -g

没有报错则表示安装成功

# cmd窗口执行,注意此处的V是大写的
vue -V

3. 使用脚手架vue-cli来构建项目

1.cmd窗口执行

vue init webpack xxx #此处的xxx指的是项目名
1.Project name:项目名,默认是输入时的那个名称spa
2.Project description:项目描述
3.Author:作者
4.Vue build:选择题
  4.1 Runtime + Compiler: recommended for most users//运行加编译,官方推荐
  4.2 Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specific HTML) are ONLY allowed in .vue files //仅运行时
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安装依赖

显示如下内容表示创建成功

2.切换路径到这个spa项目

cd spa
npm install # 安装项目所需要的npm模块
npm run dev # 运行项目

出现以下页面表示运行成功

4.项目结构说明

1.build 文件夹

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

1.webpack.base.conf.js

webpack基础配置,开发环境,生产环境都依赖

2.webpack.dev.conf.js

webpack开发环境配置

3.webpack.prod.conf.js

webpack生产环境配置

4. build.js

生产环境构建脚本

5.vue-loader.conf.js

此文件是处理.vue文件的配置文件

2.config文件夹

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

1.dev.env.js

配置开发环境

2.prod.env.js

配置生产环境

3.index.js

这个文件进行配置代理服务器,例如:端口号的修改

3.node_modules文件夹

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

4.src文件夹

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

1.assets

共用的样式、图片

2. components

业务代码存放的地方,里面分成一个个组件存放,一个页面是一个组件,一个页面里面还会包着很多组件

3.router

设置路由

4.App.vue

vue文件入口界面

5.main.js

对应App.vue创建vue实例,也是入口文件,对应webpack.base.config.js里的入口配置

5.static文件夹

存放的文件不会经过webpack处理,可以直接引用,例如swf文件如果要引用可以在webpack配置, 对swf后缀名的文件处理的loader,也可以直接将swf文件放在这个文件夹引用

6.package.json

这个文件有两部分是有用的:scripts 里面设置命令以及在dependencies和devDependencies中,分别对应全局下载和局部下载的依赖包

5.什么是.vue文件

.vue 文件,是一个自定义的文件类型,用类似HTML的语法描述一个Vue组件。 每个.vue文件包含三种类型的顶级语言块 ,


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


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


一般情况是使用


标签包含其它的代码(保证只有一个根元素)

<template>
  <div>...</div>
</template>

**注2:**js代码写在

<script>
  export default {
    name: 'App'
  }
</script>

**注3:**样式与以前的写法一样

6.使用路由

将前一部分内容重新写一遍

博客链接: https://blog.csdn.net/qq_50477101/article/details/131838689

效果

1.在components中添加Home.vue文件,编写内容

<template>
  <div>这是首页,展示网站的最新的内容</div>
</template>

<script>
export default{
  name: 'Home',
  data(){
    return {

    }
  }
}
</script>

<style>
</style>

2.在components中添加About.vue文件,编写内容

<template>
  <div>
    这是一个关于的页面
  </div>
</template>

<script>
export default{
  name: 'About',
  data(){
    return {

    }
  }
}
</script>

<style>
</style>

3.在router/index.js中写入以下内容

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import About from '@/components/About'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/home',
      name: 'Home',
      component: Home
    },
    {
      path: '/about',
      name: 'About',
      component: About
    }
  ]
})

7.使用嵌套路由

效果

修改About.vue文件

<template>
  <div>
    <router-link to="/aboutMe">关于站长</router-link>
    <router-link to="/aboutWebsite">关于网站</router-link>
    <router-view></router-view>
  </div>
</template>

<script>
export default{
  name: 'About',
  data(){
    return {

    }
  }
}
</script>

<style>
</style>

添加AboutMe.vue文件

<template>
  <div>关于本站创始人,xxxxxxxxx,xxxxx</div>
</template>

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

<style scoped>

</style>

添加AboutWebsite.vue文件

<template>
  <div>本站致力于xxx,目前发展了xxx,将要发展xxx</div>
</template>

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

<style scoped>

</style>

修改router/index.js文件

import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import About from '@/components/About'
import AboutMe from '@/components/AboutMe'
import AboutWebsite from '@/components/AboutWebsite'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
    {
      path: '/home',
      name: 'Home',
      component: Home
    },
    {
      path: '/about',
      name: 'About',
      component: About,
      children:[
        {
          path: '/aboutMe',
          name: 'AboutMe',
          component: AboutMe
        },
        {
          path: '/aboutWebsite',
          name: 'AboutWebsite',
          component: AboutWebsite
        },
      ]
    }
  ]
})
目录
相关文章
|
Linux 编译器 C语言
Linux应用开发基础知识——字符文字编码(五)
Linux应用开发基础知识——字符文字编码(五)
859 0
Linux应用开发基础知识——字符文字编码(五)
|
存储 缓存 并行计算
CPU组成元素:运算器+控制器(一)
CPU组成元素:运算器+控制器
5098 0
|
Android开发
阿里“无影”,办公好助手
从入手到现在,包括整个春节假期,一共一个月,从头到尾对“无影”进行比较全面的“个人”性质的测评,总体而言,很哇塞。
|
存储 缓存 Unix
Linux性能调优 —— 内存篇
大多数计算机用的主存都是动态随机访问内存(DRAM),只有内核才可以直接访问物理内存。Linux内核给每个进程提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样进程就可以很方便的访问内存(虚拟内存)。
475 1
|
JSON API 开发者
小红书 API 接口使用指南:笔记详情数据接口的接入与使用
小红书是一款广受喜爱的生活方式分享社交平台,涵盖旅行、美食等领域。其API允许开发者批量获取笔记内容、图片链接及用户互动数据,助力内容分析与营销策略优化。要使用API,需先注册开发者账号并通过认证获取密钥;随后依据官方文档构建与发送HTTP请求,最后处理JSON格式响应数据。整个过程中,请务必遵循平台使用条款,尊重用户隐私权。
Object类型转换为long或者Long
1.转换为long Object o = new Object();long l = Long.valueOf(String.valueOf(o)).longValue();   2.转换为Long Object o = new Object();long l = Long.
4624 0
|
缓存 并行计算 算法
上帝视角看GPU(5):图形流水线里的不可编程单元
上帝视角看GPU(5):图形流水线里的不可编程单元
916 0
|
机器学习/深度学习 算法 数据挖掘
Python机器学习算法入门教程(三)
本节讲解如何构建线性回归算法中的“线性模型”,所谓“线性”其实就是一条“直线”。因此,本节开篇首先普及一下初中的数学知识“一次函数”。
Python机器学习算法入门教程(三)
|
小程序 区块链
阿里云各类数字藏品免费领取
数字藏品是指使用区块链技术,对应特定的作品、艺术品生成的唯一数字凭证,在保护其数字版权的基础上,实现真实可信的数字化发行、购买、收藏和使用。每一个数字藏品都代表特定作品、艺术品和商品或其限量发售的单个数字复制品,不可篡改,不可分割,也不能互相替代,具有唯一性,真实性和永久性。与传统收藏品相似,而数字收藏品的价值则是因为其天然就具备的唯一性与稀缺性。
952 1