vue.js单页面应用实例的简单实现


Posted in Javascript onApril 10, 2017

一:npm的安装

由于新版的node.js已经集成了npm的环境,所以只需去官网下载node.js并安装,安装完成后使用cmd检测是否成功。

测试node的版本号:node -v

测试npm的版本号:npm -v

vue.js单页面应用实例的简单实现 

 以上提示代表安装成功

二:vue.js环境搭建

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

2、安装vue.js环境::cnpm install -g vue-cli

3、测试vue的安装:vue

三:vue.js项目的建立

新建一个名为pt的vue项目:在F盘创建一个名为pt的文件夹:执行:cd f:\ vue init webpack pt

接下来会依次出现以下的操作

vue.js单页面应用实例的简单实现

注:Use ESlint to lint your code-是否使用ESlint(最后选否,否则不熟悉这种严格的方式,会被坑惨,没空格会报错,多空格也会报错)

vue项目的启动步骤:(1)cd pt (2)npm install (3)npm run dev

最终的目录结构:

vue.js单页面应用实例的简单实现

四:创建一个vue实例

main.js:应用入口文件

App.js:初始化组件

例:我们要实现如下效果的一个网站

vue.js单页面应用实例的简单实现

有四个模块:首页、公司介绍、招贤纳士、易点咨询。

项目的思维导向图:

vue.js单页面应用实例的简单实现

1、配置入口文件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.
import Vue from 'vue'
import App from './App'
// 引入router路由
import Router from 'vue-router'
// 引入项目的四个模块组件
import introduce from './components/introduce'
import home from './components/home'
import employment from './components/employment'
import consult from './components/consult'
// 使用router
Vue.use(Router)
// 定义路由
var routes = [{
 path: '/home',
 component: home
}, {
 path: '/introduce',
 component: introduce
}, {
 path: '/employment',
 component: employment
}, {
 path: '/consult',
 component: consult 
}]
// 实例化路由
var vueRouter = new Router({
 routes
})
// 创建和挂载根实例
new Vue({
 el: '#app',
 router: vueRouter,
 template: '<App></App>',
 components: { App }
})

2、初始化组件App.vue开发

<template>
 <div id="app">
  <div class="nav-top">
    <!-- 引入公用的头部 header组件 -->
     <v-header></v-header>
  </div>
  <div class="banner">
  </div>
  <div class="contianer">
   <!-- 路由中的几个组件在这里被渲染,默认被渲染的为第一个组件,也就是home组件 -->
   <router-view></router-view>
  </div>
 </div>
</template>
<style>
#app {
 font-family: 'Avenir', Helvetica, Arial, sans-serif;
 -webkit-font-smoothing: antialiased;
 -moz-osx-font-smoothing: grayscale;
 text-align: center;
 color: #2c3e50;
}
.nav-top {
 position: absolute;
 top: 0;
 left: 50%;
 margin-left: -600px;
 z-index: 99;
}
.banner{
 width: 100%;
 height: 370px;
 overflow: hidden;
 background: url("components/banner.jpg");
 background-repeat: no-repeat;
}
</style>
<script>
//引入header组件
import header from './components/header.vue'
//输出header组件
export default{
 components: {
  'v-header': header
 }
}
</script>

3、创建公用头部组件

<template>
 <div class="header">
  <div class="header-wrapper">
   <div class="logo">
    <a href="/home" rel="external nofollow" ><img src="../assets/ysh.png" alt width="210"></a>
   </div>
   <ul class="nav">
    <li><router-link to="/home">首页</router-link></li>
    <li><router-link to="/introduce">公司介绍</router-link></li>
    <li><router-link to="/employment">招贤纳士</router-link></li>
    <li><router-link to="/consult">易点咨询</router-link></li>
   </ul> 
  </div> 
 </div>
</template>
<style>
.header{
 width:1200px;
 height:100px;
 margin:0 auto;
 color:#fff;
}
.header-wrapper{
 width:1200px;
 height:100px;
}
.logo{
 width:210px;
 height:100px;
 float:left;
}
.nav{
 width:700px;
 height:100px;
 font-size:15px;
 float:right;
}
.nav li{
 float:left;
 margin-right:30px;
 height:34px;
 line-height:34px;
 overflow:hidden;
 margin-top:34px;
}
.nav li:last-child{
 margin-right:0;
}
.nav a{
 display:inline-block;
 padding:0 13px;
 color:#fff;
 border-radius:15px;
}
.nav a.router-link-active{
 background:#c10514;
}
</style>

4、创建其他组件

需注意模板文件都只能有一个根元素。

<template>
<div class="intro">
公司介绍
</div>
<div>
zx
</div>
</template>
<style>
.intro{
  font-size:20px;
  color:#000;
  margin:20px auto;
}
</style>

像这种情况会报错。

正确的为:

<template>
  <div class="intro">
    公司介绍
  </div>
</template>
<style>
.intro{
  font-size:20px;
  color:#000;
  margin:20px auto;
}
</style>

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

Javascript 相关文章推荐
使用Javascript和DOM Interfaces来处理HTML
Oct 09 Javascript
基于jquery实现的类似百度搜索的输入框自动完成功能
Aug 23 Javascript
CSS(js)限制页面显示的文本字符长度
Dec 27 Javascript
用jquery方法操作radio使其默认选项是否
Sep 10 Javascript
js截取小数点后几位的写法
Nov 14 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
Oct 17 Javascript
jquery操作对象数组元素方法详解
Nov 26 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 Javascript
servlet+jquery实现文件上传进度条示例代码
Jan 25 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
通过命令行生成vue项目框架的方法
Jul 12 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
javascript内存分配原理实例分析
Apr 10 #Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
Apr 10 #Javascript
Angular中ng-bind和ng-model的区别实例详解
Apr 10 #Javascript
javascript深拷贝的原理与实现方法分析
Apr 10 #Javascript
Vue2递归组件实现树形菜单
Apr 10 #Javascript
JS判断两个对象内容是否相等的方法示例
Apr 10 #Javascript
javascript防篡改对象实例详解
Apr 10 #Javascript
You might like
php设计模式小结
2013/02/15 PHP
PHP编码规范的深入探讨
2013/06/06 PHP
用PHP和Shell写Hadoop的MapReduce程序
2014/04/15 PHP
php实现的短网址算法分享
2014/06/20 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
Bootstrap Navbar Component实现响应式导航
2016/10/08 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
js new Date()实例测试
2019/10/31 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python实现合并字典的方法
2015/07/07 Python
Python实现计算圆周率π的值到任意位的方法示例
2018/05/08 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
门卫岗位安全职责
2013/12/13 职场文书
工程专业毕业生自荐信范文
2013/12/25 职场文书
访谈节目策划方案
2014/05/15 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
HR求职自荐信范文
2014/06/21 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
介绍信如何写
2015/01/31 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
Minikube搭建Kubernetes集群
2022/03/31 Servers