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 迁移目录
Dec 18 Javascript
Ajax+Json 级联菜单实现代码
Oct 27 Javascript
jquery的index方法实现tab效果
Feb 16 Javascript
基于jQuery的图片不完全按比例自动缩小
Jul 11 Javascript
JS实现的表格行鼠标点击高亮效果代码
Nov 27 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
Feb 03 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
Bootstrap基本样式学习笔记之按钮(4)
Dec 07 Javascript
原生js检测页面加载完毕的实例
Sep 11 Javascript
了解在JavaScript中将值转换为字符串的5种方法
Jun 06 Javascript
详解利用eventemitter2实现Vue组件通信
Nov 04 Javascript
vue实现拖拽效果
Dec 23 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+mysql 实现身份验证代码
2010/03/24 PHP
php中几种常见安全设置详解
2010/04/06 PHP
深入解析php之apc
2013/05/15 PHP
PHP引用符&amp;的用法详细解析
2013/08/22 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
Javascript中的call()方法介绍
2015/03/15 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
ES6新特性之解构、参数、模块和记号用法示例
2017/04/01 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
element中的$confirm的使用
2020/04/26 Javascript
JS实现canvas简单小画板功能
2020/06/23 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
python中sys.argv函数精简概括
2018/07/08 Python
Java模拟试题
2014/11/10 面试题
师范生个人推荐信
2013/11/29 职场文书
工作会议欢迎词
2014/01/16 职场文书
试用期员工考核制度
2014/01/22 职场文书
公司请假条范文
2014/04/11 职场文书
节约用水倡议书
2014/04/16 职场文书
新闻发布会策划方案
2014/06/12 职场文书
售后客服工作职责
2014/06/16 职场文书
2014年宣传部工作总结
2014/11/12 职场文书