新手vue构建单页面应用实例代码


Posted in Javascript onSeptember 18, 2017

本文介绍了新手vue构建单页面应用实例代码,分享给大家,具体如下

步骤:

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

一、目录结构:

新手vue构建单页面应用实例代码

二、搭建项目

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

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

输入命令进入项目: cd my-project 

安装依赖: npm install

npm i

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

它会去找到package.json的scripts对象,执行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'))

import Vue from 'vue'
import App from './App'
import router from './router'

import VueResource from 'vue-resource'
Vue.use(VueResource)
Vue.config.productionTip = false

new Vue({
 el: '#app',
 router,
 template: '<App/>',
 components: { App }
})

index.html

<body>
  <div id="app"></div>
 </body>

App.vue

<template>
 <div id="app">
  <div class="row">
   <div class="col-xs-offset-2 col-xs-8">
    <div class="page-header">
     <h2>Router Basic - 01</h2>
    </div>
   </div>
  </div>
  <div class="row">
    <div class="col-xs-2 col-xs-offset-2">
     <ul class="list-group">
      <!--使用指令v-link进行导航-->
      <a class="list-group-item"><router-link to="/home">Home</router-link></a>
      <a class="list-group-item"><router-link to="/about">About</router-link></a>
      <a class="list-group-item"><router-link to="/contact">Contact</router-link></a>
     </ul>
    </div>
    <div class="col-xs-6">
     <div class="panel">
      <div class="panel-body">
       <!--用于渲染匹配的组件-->
       <router-view></router-view>
      </div>
     </div>
    </div>
   </div>
  </div>
 </div>
</template>

<script>
export default {
 name: 'app'
}
</script>

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

<template id="contact">
 <div>
  <h1>Home</h1>
  <p>This is the tutorial about Contact.</p>
 </div>
</template>

<script>
export default {
 '/hello': 'Hello'
}
</script>

src/components/About.vue

<template id="about">
  <div>
    <h1>About</h1>
    <p>This is the tutorial about vue-router.</p>
  </div>
</template>
<script>
export default {
 '/about': 'About'
}
</script>

src/components/Contact.vue

<template id="contact">
  <div>
    <h1>Contact</h1>
    <p>This is the tutorial about Contact.</p>
  </div>
</template>

export default {
 '/contact': 'contact'
}
</script>

src/index.js

import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello'
import Home from '@/components/Home'
import About from '@/components/About'
import Contact from '@/components/Contact'
import 'bootstrap/dist/css/bootstrap.css'

Vue.use(Router)

export default new Router({
 routes: [
  {
   path: '/',
   name: 'Hello',
   component: Hello
  },
  {
   path: '/home',
   name: 'Home',
   component: Home
  },
  {
   path: '/about',
   name: 'About',
   component: About
  },
  {
   path: '/contact',
   name: '/Contact',
   component: Contact
  }
 ]
})

spa地址:https://github.com/cinderellastory415/vue-demo/tree/master/spa

详细操作:

git clone https://github.com/cinderellastory415/vue-demo/tree/master/spa

npm install

npm run dev

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery maxlength文本字数限制插件
Apr 16 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
Jul 12 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
bootstrap多层模态框滚动条消失的问题
Jul 21 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
Validform验证时可以为空否则按照指定格式验证
Oct 20 Javascript
详解vuex结合localstorage动态监听storage的变化
May 03 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
Layui table field初始化加载时进行隐藏的方法
Sep 19 Javascript
谈谈JavaScript中的函数
Sep 08 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
angularjs路由传值$routeParams详解
Sep 05 #Javascript
vue-ajax小封装实例
Sep 18 #Javascript
信息滚动效果的实例讲解
Sep 18 #Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
Sep 18 #Javascript
angularjs实现猜数字大小功能
May 20 #Javascript
angular指令笔记ng-options的使用方法
Sep 18 #Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
Sep 18 #jQuery
You might like
PHP 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
python pickle 和 shelve模块的用法
2013/09/16 Python
在Python中用split()方法分割字符串的使用介绍
2015/05/20 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
python实现三维拟合的方法
2018/12/29 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
美国著名的团购网站:Woot
2016/08/02 全球购物
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
某公司部分笔试题
2013/11/05 面试题
班级道德讲堂实施方案
2014/02/24 职场文书
体现团队精神的口号
2014/06/06 职场文书
学校安全责任书范本
2014/07/23 职场文书
先进党支部事迹材料
2014/12/24 职场文书
艺术节开幕词
2015/01/28 职场文书
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js