该节教程代码可经过npm start运行devServer,在http://localhost:8080/查看效果css
以前的教程中使用的一直是Vue 1.0的组件写法,接下来的课程都会使用Vue 2.0的语法。 Vue 2.0项目开发都须要经过Webpack进行打包,此时就要经过相关loader进行处理,具体能够查看webpack.config.js中的配置。 全部的组件都是以vue做为后缀。html
代码示例:/lesson17/src/index.jsvue
index.js主要用来引入住入口组件App.vue,以及路由配置,其他组件都经过App组件引入。webpack
import Vue from 'vue';
// 主入口组件
import App from './App.vue';
// 引入路由配置
import router from './routers';
let vm=new Vue({
el: '#div1',
data: {},
components: {App},
router, // 将路由表挂载到Vue实例,在组件中能够直接使用路由组件和功能
template: `
<App/>
`
})
复制代码
代码示例:/lesson17/src/routers/index.jsgit
使用vue-router完成路由配置,并将实例导出,提供给入口index.js中的Vue实例引用,这样在组件中就能够直接使用路由组件和方法。github
import Vue from 'vue';
import Router from 'vue-router';
// 引入页面组件
import Index from '@/index.vue';
import News from '@/news.vue';
// 全局使用Router
Vue.use(Router);
// 配置路由
export default new Router({
routes: [
{
path: '/',
name: 'index',
component: Index
},
{
path: '/news',
name: 'news',
component: News
}
]
})
复制代码
代码示例:/lesson17/src/App.vueweb
App.vue为项目的入口组件,能够经过它跳转到其余组件,或者经过它引入其余组件。vue-router
// 此处书写template模板,支持html等多种语言,等同于Vue.component中的template属性
<template lang="html">
<div>
<!-- 将组件写入模板,两种写法都兼容 -->
<CmpTest />
<cmp-test />
<!-- 路由跳转连接,因为路由已经在入口index.js中挂载,组件中能够直接使用 -->
<router-link :to="{ name: 'index', params: {} }">首页</router-link>
<router-link :to="{ name: 'news', params: {} }">新闻</router-link>
<router-view/>
</div>
</template>
// 此处书写JavaScript代码,等同于Vue.component代码
<script>
// 引入其余组件
import CmpTest from './components/cmp.vue'
// 默认导出Vue组件
export default {
name: 'app', // name属性为组件提供了一个ID,调试时的报错信息将显示该名称
data(){
return {a: 12}
},
components: {
CmpTest
}
}
</script>
// 此处书写样式,支持css、less等其余语言
<style lang="css" scoped>
</style>
复制代码