使用vue-cli搭建SPA项目的详细过程

 更新时间:2022年09月14日 15:34:28   作者:七月472  
vue-cli是vue.js的脚手架,用于自动生成vue.js+webpack的项目模板,本文通过实例代码给大家介绍vue-cli搭建SPA项目的详细过程,感兴趣的朋友跟随小编一起看看吧

一、vue-cli构建SPA项目及SPA项目结构介绍

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

vue init webpack xxx

注:xxx 为自己创建项目的名称;必须先安装vue,vue-cli,webpack,node等一些必要的环境

1.1利用vue-cli构建SPA

安装vue-cli命令-npm install (-g、-s、-d)

-g:js依赖会下载到node_global中

-s:会被打包(安装到dependencies里面)

-d:只会在开发环境中被依赖

1.2spa的访问过程:

(1)访问index.html

(2)index.html通过main.js中的vue实例管理#app边界,同时指定App.vue模板

(3)App.vue中包含了图片以及锚点,而锚点与组件的对应关系存在router/index.js中,所以就指向了一个组件

(4)最终App.vue中就显示了logo图片以及helloworld.vue的内容

1.3如何安装vue-cli命令

npm install -g vue-cli

该行命令在哪里的cmd窗口执行都可以(根目录、管理员窗口等)

npm install webpack -g

以上命令ok后,构建spa项目

vue init webpack xiaokun_spa此命令用于创建SPA项目,它会在当前目录生成一个以“xiaokun_spa”命名的文件夹

注:xiaokun_spa文件夹则为项目名,项目名不能用中文或大写字母

这样spa项目就创建好了,这边使用HBuilder X导入

导入后,我们来认识一下,其中的类

更改端口号8080——>8083:

spa访问过程:

1.访问index.html

2.index.html通过main.js中的vue实例管理#app边界,同时指定APP.vue模板

3.APP.vue中包含了logo图片以及锚点,而锚点与组件的对应关系存在router/index.js中,所有就指向了一个组件

4.最终APP.vue中就显示了logo图片以及helloworld.vue的内容

二、SPA完成路由的开发

步骤

1、引入路由js依赖:main.js中已经完成

2、定义组件:呈现形式是以.vue文件展示

template标签中定义组件内容

通过export default指定组件的名字

3、定义路由与组件之间的对应关系

router/index.js文件中进行定义

4、获取路由对象:main.js中已经完成

5、挂载Vue实例:main.js中已经完成

6、定义锚点:App.vue 使用 router-view

7、触发事件:App.vue 使用 router-link to

Home.vue:

<template>
  <div>
    这是首页内容,展示最新的10篇博客
  </div>
</template>
 
<script>
  export default {
    name: 'Home',
    data () {
      return {
        msg: 'Welcome to Your Vue.js App'
      }
    }
  }
</script>
 
<style>
</style>

About.vue:

<template>
  <div>
    这是关于本站显示的内容区域,本站的发展史...
  </div>
</template>
 
<script>
  export default {
    name: 'About',
    data () {
      return {
        msg: 'Welcome to Your Vue.js App'
      }
    }
  }
</script>
 
<style>
</style>

index.js:

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
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
    },
  ]
})

App.vue:

<template>
  <div id="app">
    <!-- 触发事件-->
    <router-link to="/Home">首页</router-link>
    <router-link to="/About">关于</router-link>
   <!-- <img src="./assets/logo.png"> -->
    <!-- 锚点-->
    <router-view/>
  </div>
</template>
 
<script>
export default {
  name: 'App'
}
</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>

三、嵌套路由

children:[ ]

AboutMe.vue:

<template>
	<div>站长</div>
</template>
 
<script>
	export default {
		name:'AboutMe',
		data() {
			return {
				
			};
		}
	}
</script>
 
<style>
 
</style>

AboutWebSite.vue:

<template>
	<div>本站</div>
</template>
 
<script>
	export default {
		name:'AboutWebSite',
		data() {
			return {
				
			};
		}
	}
</script>
 
<style>
 
</style>

index.js:

import Vue from 'vue'
import Router from 'vue-router'
// 3.定义路由与组件的对应关系
import HelloWorld from '@/components/HelloWorld'
import Home from '@/components/Home'
import About from '@/components/About'
import AboutMe from '@/components/AboutMe'
import AboutWebSite from '@/components/AboutWebSite'
 
Vue.use(Router)
 
// 	4.生成路由对象
export default new Router({
  routes: [
    {
      path: '/',
			// 这个可要可不用
      name: 'Home',
      component: Home
    },
		{
			path: '/Home',
			name: 'Home',
			component: Home
		},
		{
			path: '/About',
			name: 'About',
			component: About
		},
		{
			path: '/AboutMe',
			name: 'AboutMe',
			component: AboutMe
		},
		{
			path: '/AboutWebSite',
			name: 'AboutWebSite',
			component: AboutWebSite
		}
  ]
})

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>

到此这篇关于使用vue-cli搭建SPA项目的文章就介绍到这了,更多相关vue-cli搭建SPA项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • vue2如何使用face-api.js实现人脸识别功能

    vue2如何使用face-api.js实现人脸识别功能

    本文介绍了如何在Vue.js项目中利用face-api.js实现人脸识别功能,首先需要安装Vue.js和face-api.js以及其依赖TensorFlow.js,接着,下载并配置必要的模型文件到项目目录,之后,将人脸识别功能封装成Vue组件,并在组件中通过视频流进行人脸检测和结果展示
    2024-09-09
  • vue+vuex+axios实现登录、注册页权限拦截

    vue+vuex+axios实现登录、注册页权限拦截

    下面小编就为大家分享一篇vue+vuex+axios实现登录、注册页权限拦截,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vue3.x最小原型系统讲解

    Vue3.x最小原型系统讲解

    这篇文章主要介绍了Vue3.x最小原型系统讲解。既然用Vue3.0构建最小原型系统,那么肯定要用尤大的最新构建工具Vite来进行项目的初始化,下文举例说明,需要的朋友可以参考一下
    2022-02-02
  • vue级联选择器的getCheckedNodes使用方式

    vue级联选择器的getCheckedNodes使用方式

    这篇文章主要介绍了vue级联选择器的getCheckedNodes使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • vue2.0安装style/css loader的方法

    vue2.0安装style/css loader的方法

    下面小编就为大家分享一篇vue2.0安装style/css loader的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue3.0透传属性和事件的使用方式举例

    vue3.0透传属性和事件的使用方式举例

    这篇文章主要给大家介绍了关于vue3.0透传属性和事件使用的相关资料,透传attribute指的是传递给一个组件,却没有被该组件声明为props或emits的attribute或者v-on事件监听器,需要的朋友可以参考下
    2024-01-01
  • 基于vue2.0+vuex的日期选择组件功能实现

    基于vue2.0+vuex的日期选择组件功能实现

    这篇文章主要介绍了 基于vue2.0+vuex的日期选择组件功能实现,详细介绍了使用vue编写的日期组件,,非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • 前端Vue2、Vue3和不同版本nuxt的插槽使用详解

    前端Vue2、Vue3和不同版本nuxt的插槽使用详解

    这篇文章主要介绍了前端Vue2、Vue3和不同版本nuxt的插槽使用的相关资料,Vue2和Vue3中,插槽机制允许在组件模板中定义占位符,并在使用组件时插入自定义内容,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-02-02
  • babel7.x和webpack4.x配置vue项目的方法步骤

    babel7.x和webpack4.x配置vue项目的方法步骤

    这篇文章主要介绍了babel7.x和webpack4.x配置vue项目的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • vue3如何获取绑定页面dom元素

    vue3如何获取绑定页面dom元素

    这篇文章主要介绍了vue3如何获取绑定页面dom元素问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论