在静态页面中使用 Vue.js
在静态页面中使用 Vue.js
不使用
Node.js
,NPM
,Webpack
等, 在静态页中使用Vue.js
. 包括路由, 单文件组件.
1. 创建index.html
index.html
做为项目的首页, 主要用来定义页面框架, 加载必需的css
和script
.
这里使用element-ui
的导航菜单组件搭建了一个页面框架.
需要注意的是, <el-menu>
标签要加上 :default-active="$route.path"
和 @select="handleSelect"
; 有了这两个属性才能实现路由的跳转.
在菜单项<el-meun-item>
标签中要加上index="menu-2-index"
属性, 意思就是当前菜单对应的路由.
最后不要忘记"<router-view></router-view>"
. Vue 组件将会被填充的这里.
script
主要引用的有vue
和vue-router
以及element-ui
, ajax
请求使用的是axios
, 如果不喜欢可以更换为jQuery
等.
<!DOCTYPE html>
<html lang="en" xmlns:th="http:www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<title>Vue Test</title>
</head>
<body>
<div id="app">
<el-container style="border: 1px solid #eee">
<el-aside width="200px" style="background-color: rgb(238, 241, 246)">
<el-menu :default-openeds="['1']" :default-active="$route.path" @select="handleSelect">
<el-menu-item index="">
<template slot="title"><i class="el-icon-message"></i>菜单1</template>
</el-menu-item>
<el-menu-item index="/menu-2-index">
<template slot="title"><i class="el-icon-menu"></i>菜单2</template>
</el-menu-item>
<el-menu-item index="/menu-3-index">
<template slot="title"><i class="el-icon-setting"></i>菜单3</template>
</el-menu-item>
</el-menu>
</el-aside>
<el-container>
<router-view></router-view>
</el-container>
</el-container>
</div>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js "></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="./js/util.js"></script>
<script src="./js/route.js"></script>
<script src="./js/main.js"></script>
</body>
</html>
2. 创建单文件组件
单文件组件格式与 Vue 官网实例一致, HTML片段必须使用<template>
标签包括.
<template>
<div id="menu1">
<h1>Hello Menu 1</h1>
<h2>{{message}}</h2>
</div>
</template>
<script>
exports = {
data: function () {
return {
message: 'Hello Vue!'
}
}
}
</script>
<style>
#menu1 {
font-size: 12px;
}
</style>
3. 定义路由配置
组件的加载使用异步方式, util.loadComponent(url)
, 此方法中传入服务器url, 接收服务器返回的单文件组件, 即HTML片段.
var routes = [{
path: '/menu-1-index',
name: 'menu-1-index',
component: util.loadComponent('../views/menu1.html')
}, {
path: '/menu-2-index',
name: 'menu-2-index',
component: util.loadComponent('./views/menu2.html')
}];
var router = new VueRouter({
routes: routes
});
4. 定义main.js
在Vue
实例中绑定路由, 并实现handleSelect
方法, 用于路由的跳转.
var app = new Vue({
el: '#app',
router : router,
data: function () {
return {
activeIndex:1,
}
},
methods: {
handleSelect : function(key, path) {
console.log(key, path)
this.$router.push(key)
}
}
});
可在附件中下载实例代码: 附件
在静态页面中使用 Vue.js的更多相关文章
- Atitit 项目界面h5化静态html化计划---vue.js 把ajax获取到的数据 绑定到表格控件 v2 r33.docx
Atitit 项目界面h5化静态html化计划---vue.js 把ajax获取到的数据 绑定到表格控件 v2 r33.docx 1. 场景:应用在项目列表查询场景下1 1.1. 预计初步掌握vue ...
- 在webpack中配置vue.js
在webpack中配置vue.js 这里有两种在webpack中配置vue.js的方法,如下: 1.在main.js中引入vue的包: index.html: <!DOCTYPE html> ...
- 在django中使用vue.js需要注意的地方
有接口如下: http://127.0.0.1:8000/info/schemes/ 返回json数据: [ { "name": "(山上双人标准间)黄山经典二日游(魅力 ...
- 使用VS2017开发APP中使用VUE.js开发遇到打包出来的android文件 在低版本的android(4.3)中无法正常使用
使用VS2017开发VUE的APP应用遇到的问题集合 1, 打包出来的apk文件在Android 6.0版本以上手机可以正常打开,在Android 4.3版本手机上无法打开 原因:一开始猜测是不是V ...
- 在HTML页面中加载js文件和css文件的方法
1.在HTML页面加载js文件的方法: function loadScriptFile(filePath){ var script = document.createElement("scr ...
- visual studio 2019 中初始化 vue.js 项目
vs项目模板,webpack模板的创建方式在vs里创建后,npm install的过程会卡很久,暂时原因不明,感觉应该是文件太多,需要写入太多零碎文件. 试了几种初始化方法,还是用最新cli创建最好, ...
- Ajax在静态页面中向指定url发送json请求获取返回的json数据
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- 静态页面中如何传json数据
首页传递参数组装成json数据,再编码 var param="{type:'"+type+"',text:'"+select_text+"',sele ...
- MVC 访问静态页面 View 下面放JS
http://blog.csdn.net/qq_17255515/article/details/53293120
随机推荐
- 小a的轰炸游戏(差分,前缀和)
题目传送门 题意: 给出一个n*m的矩形,然后有两个操作. 1操作,对一个给出的菱形,对菱形范围内的东西进行+1. 2操作,对一个上半菱形的区域,进行+1操作. 最后求矩形内各个数的异或和. 思路: ...
- Spring的底层实现机制
Spring的底层实现机制是通过Demo4j+java反射机制实现的. 使用demo4j来解析xml,使用反射机制实例化bean.
- UIAlertView, UIAlertViewController
iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UIPresentationController 在实现视图控制器间的过渡动画效果和自适应设备尺 ...
- 关于Windows 10上MarkdownPad2无法预览的解决办法
升级win10后,发现一直可以用的MarkdownPad2预览功能不可以用了.于是在网上搜索了一下,刚开始没有解决.不过现在可以了.现在把解决方案记录下来.Windows10上使用MarkdownPa ...
- 百度网盘SVIP不限速Mac破解版(亲测可用)
百度网盘SVIP不限速Mac破解版(亲测可用),按照教程一步一步来就可以了,链接如下: https://mac.orsoon.com/Mac/166358.html?id=ODY0MDA2Jl8mMT ...
- java程序员究竟应该掌握点什么
JAVA程序设计(基础部分) JAVA程序设计(专题)
- 内置的configparser模块和hashlib模块
#configparser模块:配置解析模块 import configparser config = configparser.ConfigParser() #创建一个配置解析对象 config[& ...
- quartz 时间配置
Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: <!-- s m h d m w(?) y( ...
- 应用程序不了找到mysql中的表,客户端可以正常打开表
原因是mysql中区分大小写的参数:lower-case-table-names=1 默认是区分大小写的,程序中代码可能是大小写混合的,其中访问数据库的sql是大小写混合的.所以找不到数据库中的表 ...
- spring5
Spring 是面向 Bean 的编程(Bean Oriented Programming, BOP) ,Spring 提供了 IOC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系. 控制反 ...