新手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 相关文章推荐
javascript下4个跨浏览器必备的函数
Mar 07 Javascript
JS分页控件 可用于无刷新分页
Jul 23 Javascript
Jquery性能优化详解
May 15 Javascript
超级简单实现JavaScript MVC 样式框架
Mar 24 Javascript
浅析JavaScript声明变量
Dec 21 Javascript
js style.display=block显示布局错乱问题的解决方法
Sep 21 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
Oct 26 Javascript
微信小程序 特效菜单抽屉效果实例代码
Jan 11 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
Nov 09 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
Feb 06 Javascript
vue工程全局设置ajax的等待动效的方法
Feb 22 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
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中用PHPMailer来发送邮件的示例(126.com的例子)
2013/06/24 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
js indexOf()定义和用法
2012/10/21 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
bootstrap table实例详解
2017/01/06 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Python如何调用外部系统命令
2019/08/07 Python
浅谈Python 递归算法指归
2019/08/22 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
德国前卫设计师时装在线商店:Luxury Loft
2019/11/04 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
小学数学国培感言
2014/03/10 职场文书
新郎结婚保证书
2015/02/26 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
《绝招》教学反思
2016/02/20 职场文书
2016年小学“感恩教师”主题队日活动总结
2016/04/01 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书