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
        },
      ]
    }
  ]
})
目录
相关文章
|
人工智能 自然语言处理 API
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
图片转音乐模型来了!Image to Music V2 :只需上传一张照片,自动转换成与图片内容匹配的音频!
1745 1
并发与并行的区别(详细介绍)
并发与并行的区别(详细介绍)
11390 0
|
6月前
|
搜索推荐 数据挖掘
【埋点方案】用户行为分析怎么做?ClkLog用户细查实现用户行为还原
ClkLog全新「用户细查」功能,支持按ID/分群快速定位单个用户,还原完整行为轨迹、会话路径及事件上下文;可展开查看事件详情、趋势统计与占比分析,助力深度用户洞察。
|
9月前
|
传感器 安全 关系型数据库
PW2605Z过压过流保护芯片,适用于5V-15V电压范围
PW2605Z过压过流保护芯片,适用于5V-15V电压范围
|
5月前
|
存储 人工智能 监控
Coze 智能体开发标准流程
在Coze平台开发AI智能体分四步:创建(手动或AI生成)、编排(人设/插件/工作流/知识库)、调试(多轮测试+节点监控)、发布(多渠道+API)。国内版用豆包模型,国际版支持GPT-4o/Claude。结构化Prompt与工作流是提效关键。(239字)
|
8月前
|
存储 人工智能 自然语言处理
企业AI落地第一步:用RAG技术,让大模型“读懂”你的内部知识库
大家好,我是AI伙伴狸猫算君。本文带你深入浅出了解RAG(检索增强生成)——让大模型“懂”企业私有知识的利器。通过“先检索、再生成”的机制,RAG使AI能基于公司文档精准作答,广泛应用于智能客服、知识库问答等场景。文章详解其原理、四步架构、Python实战代码及评估方法,助力非算法人员也能快速构建企业专属AI助手,实现知识智能化落地。
1569 1
|
11月前
|
人工智能 缓存 自然语言处理
86_自动化提示:AutoPrompt工具
在当今人工智能领域,提示工程(Prompt Engineering)已成为释放大语言模型(LLM)潜能的关键技术。随着LLM规模和能力的不断增长,如何设计高效、精确的提示词成为研究和应用的焦点。然而,传统的手工提示工程面临着巨大挑战
731 0
|
机器学习/深度学习 人工智能 自然语言处理
生成式人工智能的价值回归:重塑技术、社会与个体的发展轨迹
生成式人工智能(Generative AI)正以前所未有的速度重塑社会面貌。它从单一决策工具转变为创造性生产力引擎,推动知识生产、艺术创作与科学研究的发展。同时,其广泛应用引发社会生产力和生产关系的深刻变革,带来就业结构变化与社会公平挑战。此外,生成式AI还面临伦理法律问题,如透明性、责任归属及知识产权等。培生公司推出的生成式AI认证项目,旨在培养专业人才,促进技术与人文融合,助力技术可持续发展。总体而言,生成式AI正从工具属性向赋能属性升华,成为推动社会进步的新引擎。