1.项目实战-vue-cli实现web音乐APP-项目初始化
web音乐APP这个项目用到的主要技术栈 为 (vue、vue/cli、axios、vue-router、better-scroll插件、Swiper插件)。
vuecli方便进行工程搭建的一个架子。他里面用到了很多vue基础的语法。
一、要用vuecli,他是基于node的,你需要有node的运行环境(如果没有,需要安装node环境)。
二、在本地需要安装vuecli脚手架构建工具。
三、创建放置项目的目录。在项目目录里面,打开cmd窗口,
初始化项目
输入vue init webapck musicapp
下载一些需要的依赖
四、启动项目
cd进入到项目中,查看项目的工程目录
工程目录如下所示:
启动项目 npm run dev
我们开发的目录主要在src目录下面,如下所示:
vue/cli项目结构
assets一般是一些静态资源
components所用到的组件
router路由
App.vue入口的组件
main.js入口文件
----
首先从main.js起始,进行了new Vue() 的渲染。根实例的vue渲染,会指明一个组件App.vue
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. /* 引入vue模块 import Vue from 'vue' 引入App.vue组件 import App from './App' 引入router,路由文件 import router from './router' */ import Vue from 'vue' import App from './App' import router from './router' // 特定模式下,他的配置信息是否正确 Vue.config.productionTip = false /* eslint-disable no-new */ /* 进行vue实例化过程,配置参数分别表示: el表示挂载元素 router上面引入的router,路由配置 components组件--所以vue实例的组件,都写在这个{ App }对象当中 template模板--组件默认的模板 */ new Vue({ el: '#app', router, components: { App }, template: '<App/>' })
vue实例化完成之后,会 进入到App.vue这个里面来,(直接从main.js 关联到 App.vue 组件文件)。
在App.vue 文件中,我们可以看到vue组件的基本结构:
后缀为.vue
<template></template>标记,组件的模板,内部一般会有一个根节点<div></div>
如下所示:
<template> <div> </div> </template>
3.script组件的脚本部分(业务逻辑部分)
<script></script>
<script> export default { name: 'App' } </script>
4.style标记内部,组件涉及到的样式
<style> </style>
components组件文件夹中的vue组件
HelloWorld.vue 与 App.vue的关系,通过main.js中的路由router,可以看下router目录下index.js里相应的内容,
import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' Vue.use(Router) // new Router()它定义一个Router的实例 export default new Router({ routes: [ { // router当中,会指明它路由的配置信息 // 当是 斜杠/的时候,访问到的是HelloWorld这个组件 path: '/', name: 'HelloWorld', component: HelloWorld } ] })
HelloWorld.vue这个组件,会添加到App.vue,它的<router-view/>这个位置,<router-view/> 的作用:路由匹配到的组件
<!-- 路由匹配到的组件将显示在这里 -->
<router-view/>
或
<router-view></router-view>
vue/cli路由
<router-view/> 是以占位符的形式来出现的!这个位置被HelloWorld.vue里面的内容替换了。
那么HelloWorld.vue 是怎么实现 把App.vue中的<router-view/>替换的呢?
其实,还是要 归根到 main.js这个文件里面来,
在main.js里面,我们一开始进行 vue实例化的过程,并且挂载的过程中,提供了一个参数叫router
而 这个router,来源于router文件夹下index.js这个文件。
他里面进行了一个路由的实例化
其实,你可以简单理解为,路由的概念--就是一个 “指向”!
当它的path是/ 斜杠的时候,它指向的组件就指向的HelloWorld,
path: '/', name: 'HelloWorld', component: HelloWorld
那 自然 就会用HelloWorld来替换<router-view/>这个占位符!
调整HelloWorld.vue组件中的内容,
查看预览效果:
创建一个Home.vue组件
<template> <div class="home"> home </div> </template> <script> export default { name: 'Home', data () { return { } } } </script> <style scoped> .home{ font-size:40px; color: red; } </style>
router目录下,index.js文件中,配置组件的路由
import Home from '@/components/Home' export default new Router({ routes: [ { // router当中,会指明它路由的配置信息 // 当是 斜杠/的时候,访问到的是HelloWorld这个组件 path: '/', name: 'HelloWorld', component: HelloWorld }, { path: '/home', name: 'Home', component: Home } ] })
App.vue
<template> <div id="app"> <router-link to="/home">home</router-link> <img src="./assets/logo.png"> <router-view/> </div> </template>
访问:
还没有留言,还不快点抢沙发?