本人写的小程序,功能还在完善中,欢迎扫一扫提出宝贵意见!

         

步骤:

1.使用vue-cli创建项目
2.使用vue-router实现单页路由
3.用vuex管理我们的数据流
4.使用vue-resource请求我们的node服务端
5.使用.vue文件进行组件化的开发

一、目录结构:

二、搭建项目

需先安装淘宝镜像:npm install -g cnpm --registry=https://registry.npm.taobao.org

Mac安装 vue-cli: sudo npm install -g vue-cli

Windows 安装 vue-cli:npm install -g vue-cli

构建初始化项目:vue init webpack project(创建webpack项目并下载依赖)

输入命令进入项目: cd project

安装依赖: npm install

npm i

开始运行: npm run dev (或输入http://localhost:8080),在热加载中运行我们的应用

它会去找到package.jsonscripts对象,执行node bulid/dev-server.js

在这文件里,配置了Webpack,会让它去编译项目文件,并且运行服务器。

这些都准备好后,我们需要为我们的路由、XHR请求、数据管理下载三个库,我们可以从vue的官网中找到他们。另外我们使用bootstrap作为我的UI库:

npm i vue-resource vue-router vuex bootstrap --save

三、项目开始

初始化项目(main.js)

查看我们的应用文件,我们可以在src目录下找到App.vue和main.js文件中,我们引入Vue和App,且创建了一个vue的实例(因为在router这行引入了App组件router.start(App,'#app'))

  1. import Vue from 'vue'
  2. import App from './App'
  3. import router from './router'
  4.  
  5. import VueResource from 'vue-resource'
  6. Vue.use(VueResource)
  7. Vue.config.productionTip = false
  8.  
  9. new Vue({
  10. el: '#app',
  11. router,
  12. template: '<App/>',
  13. components: { App }
  14. })

index.html

  1. <body>
  2. <div id="app"></div>
  3. </body>

App.vue

  1. <template>
  2. <div id="app">
  3. <div class="row">
  4. <div class="col-xs-offset-2 col-xs-8">
  5. <div class="page-header">
  6. <h2>Router Basic - 01</h2>
  7. </div>
  8. </div>
  9. </div>
  10. <div class="row">
  11. <div class="col-xs-2 col-xs-offset-2">
  12. <ul class="list-group">
  13. <!--使用指令v-link进行导航-->
  14. <a class="list-group-item"><router-link to="/home">Home</router-link></a>
  15. <a class="list-group-item"><router-link to="/about">About</router-link></a>
  16. <a class="list-group-item"><router-link to="/contact">Contact</router-link></a>
  17. </ul>
  18. </div>
  19. <div class="col-xs-6">
  20. <div class="panel">
  21. <div class="panel-body">
  22. <!--用于渲染匹配的组件-->
  23. <router-view></router-view>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. </div>
  29. </div>
  30. </template>
  31.  
  32. <script>
  33. export default {
  34. name: 'app'
  35. }
  36. </script>

//   src/components/Home.vue 作为我们的首页

  1. <template id="contact">
  2. <div>
  3. <h1>Home</h1>
  4. <p>This is the tutorial about Contact.</p>
  5. </div>
  6. </template>
  7.  
  8. <script>
  9. export default {
  10. '/hello': 'Hello'
  11. }
  12. </script>

//   src/components/About.vue

  1. <template id="about">
  2. <div>
  3. <h1>About</h1>
  4. <p>This is the tutorial about vue-router.</p>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. '/about': 'About'
  10. }
  11. </script>

//   src/components/Contact.vue

  1. <template id="contact">
  2. <div>
  3. <h1>Contact</h1>
  4. <p>This is the tutorial about Contact.</p>
  5. </div>
  6. </template>
  7.  
  8. export default {
  9. '/contact': 'contact'
  10. }
  11. </script>

//   src/index.js

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import Hello from '@/components/Hello'
  4. import Home from '@/components/Home'
  5. import About from '@/components/About'
  6. import Contact from '@/components/Contact'
  7. import 'bootstrap/dist/css/bootstrap.css'
  8.  
  9. Vue.use(Router)
  10.  
  11. export default new Router({
  12. routes: [
  13. {
  14. path: '/',
  15. name: 'Hello',
  16. component: Hello
  17. },
  18. {
  19. path: '/home',
  20. name: 'Home',
  21. component: Home
  22. },
  23. {
  24. path: '/about',
  25. name: 'About',
  26. component: About
  27. },
  28. {
  29. path: '/contact',
  30. name: '/Contact',
  31. component: Contact
  32. }
  33. ]
  34. })

查看项目

详细操作:

  1. 克隆项目:git clone https://github.com/cinderellastory415/vue-demo/tree/master/spa
  2. 安装依赖:npm install
  3. 运行项目:npm run dev 或者  npm start

输入以上命令,即可查看效果!

新手vue构建单页面应用实例的更多相关文章

  1. 借助 Vue 来构建单页面应用

    原文: https://github.com/MeCKodo/vue-tutorial 主题 Vue.js (1/2)Vue构建单页应用最佳实战 前言 我们将会选择使用一些vue周边的库 1.使用no ...

  2. spring boot使用vue+vue-router构建单页面应用

    spring boot http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ vue https: ...

  3. jQuery File Upload 单页面多实例的实现

    jQuery File Upload 的 GitHub 地址:https://github.com/blueimp/jQuery-File-Upload 插件描述:jQuery File Upload ...

  4. 使用Angular构建单页面应用(SPA)

    什么是SPA?看下图就是SPA: 下面说正经的,个人理解SPA就是整个应用只有一个页面,所有的交互都在一个页面完成,不需要在页面之间跳转. 单页面的好处是更快的响应速度,更流畅的用户体验,甚至和桌面应 ...

  5. 【vue】使用vue构建多页面应用

    先了解一些单页面和多页面的区别 mm 多页应用模式MPA 单页应用模式SPA 应用构成 由多个完整页面构成 一个外壳页面和多个页面片段构成 跳转方式 页面之间的跳转是从一个页面跳转到另一个页面 页面片 ...

  6. 用vue构建多页面应用

    最近一直在研究使用vue做出来一些东西,但都是SPA的单页面应用,但实际工作中,单页面并不一定符合业务需求,所以这篇我就来说说怎么开发多页面的Vue应用,以及在这个过程会遇到的问题. 准备工作 在本地 ...

  7. webpack+react+antd 单页面应用实例

    React框架已经火了好长一段时间了,再不学就out了! 对React还没有了解的同学可以看看我之前的一篇文章,可以快速简单的认识一下React.React入门最好的实例-TodoList 自己从开始 ...

  8. 基于Vue的单页面应用的Markdown渲染

    之前渲染 Markdown 的时候, 笔者使用的是 mavonEditor 的预览模式, 使用起来比较爽, 只需要引入组件即可, 但是在最近的开发中, 遇到了困难. 主要问题在于作为单页面应用, 站内 ...

  9. vue2.0+elementUI构建单页面后台管理平台

    git:https://github.com/reg21st/vue2-management-platform 访问:https://reg21st.github.io/vue2-management ...

随机推荐

  1. XGBoost 与 Boosted Tree

    http://www.52cs.org/?p=429 作者:陈天奇,毕业于上海交通大学ACM班,现就读于华盛顿大学,从事大规模机器学习研究. 注解:truth4sex  编者按:本文是对开源xgboo ...

  2. Django model 字段类型及选项解析---转载

    model field 类型1.AutoField() 自增的IntegerField,通常不用自己设置,若没有设置主键,Django会自动添加它为主键字段,Django会自动给每张表添加一个自增的p ...

  3. Atom以及amWiki个人维基安装设置

    amWiki个人维基 amWiki支持.md文件的静态维基系统 安装 参考 安装Atom 下载amWiki解压zip到C:\Users\用户名\.atom\packages 目录下,或在Atom中搜索 ...

  4. 使用google earth engine根据NDWI(归一化水指数)提取水体信息

    交流合作请联系: ab000c@163.com

  5. uploadify上传图片的使用

    一:引用jquery.uploadify.js 二:代码 <body> <table> <tr> <td style="width: 15%; te ...

  6. Eclipse插件:Spket

    1,破解文件32bit不适用 java -jar spket-1.6.18.jar:

  7. C类网络子网掩码速查

    子网掩码 网络位数 子网数量 可用主机数 255.255.255.252 30 64 2 255.255.255.248 29 32 6 255.255.255.240 28 16 14 255.25 ...

  8. Overture如何更改音符符尾设置

    Overture作为一款专业的五线谱打谱软件,深受每一个音乐爱好者喜爱.在我们使用Overture来进行打谱操作时,往往会遇到下面这种情况:我们一般打上两个八分音符时,软件会自动符尾相连,但当我们连续 ...

  9. SpringMVC,SpringBoot利用ajax上传文件到后台

    1.传递单文件 首先html文件中有个<input type=”file” name=”file” id=”file”/>元素. 前台js写法: var formData=new Form ...

  10. Python3 tkinter基础 Scale orient 横竖 resolution单步步长 length 长度 tickinterval 指示刻度

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...