require简单实现单页应用程序(SPA)


Posted in Javascript onJuly 12, 2016

写了一个测试代码,用require.js配合它的一个插件text.js实现了最简单的单页应用程序,简单的记录一下,方便以后复习,

git地址:https://github.com/lily1010/requireSPA

下面来看一下目录

require简单实现单页应用程序(SPA)

从上面项目可以看出,我将css单独抽离出去,实现了按需加载,即加载test1.html时会加载test1.css,加载test2.html时会加载test2.css.

一 先来看入口index.html代码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title></title>
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <style type="text/css" class="css-attribute">
      
    </style>
  </head>
  <body>
    <script data-main="js/main" src="js/require.js"></script>
    <div class="page">
      
    </div>
  </body>
</html>

上面很简单,先定义requirejs入口data-main,另外为了按需加载css,我定义了一个类css-attribute.

二 在main.js配置路径和做逻辑处理

require.config({
  paths:{
    "jquery":"lib/jquery-1.11.0",
    "text":"lib/text",
    "text1":"../template/test1.html", //这里千万注意路径
    "text2":"../template/test2.html",
    "css1":"../style/test1.css",
    "css2":"../style/test2.css"
  }
})
require(['jquery','text!text1','text!text2','text!css1','text!css2'],function($,template1,template2,css1,css2){
//  进入页面先设置为页面test1.html内容
  $(".css-attribute").html(css1);
  $(".page").html(template1);
  
//  点击skip按钮设置为页面test2.html内容
  $(".skip").click(function(){
    $(".css-attribute").html(css2);
    $(".page").html(template2);
  })
})

上面都是最基础的require配置,注意text.js用法就可以了,很简单的

三 来看看2个页面结构以及样式

①test1.html代码如下:

<div class="test1">
  <button class="skip">点击我跳到SPA第二页</button>
</div>

②test1.html的css,即test1.css代码如下:

.test1{
  position: absolute;
  top:0;
  bottom:0;
  left: 0;
  right: 0;
  background-color: red;
}
.skip{
  position: absolute;
  top:50%;
  left: 50%;
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
}

实现效果如下:

require简单实现单页应用程序(SPA)

③test2.html代码如下:

<div class="test2">
  <button class="skip2">我是第二页,点击我回第一页</button>
</div>

④test2.html的css,即test2.css代码如下:

.test2{
  position: absolute;
  top:0;
  bottom:0;
  left: 0;
  right: 0;
  background-color: pink;
}
.skip2{
  position: absolute;
  top:50%;
  left: 50%;
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
}

实现效果如下:

require简单实现单页应用程序(SPA)

以上这篇require简单实现单页应用程序(SPA)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 Javascript
利用jQuery实现可输入搜索文字的下拉框
Oct 23 Javascript
使用javascript控制cookie显示和隐藏背景图
Feb 12 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
Nginx上传文件全部缓存解决方案
Aug 17 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
Jan 19 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
Jun 09 jQuery
AnglarJs中的上拉加载实现代码
Feb 08 Javascript
jQuery阻止事件冒泡实例分析
Jul 03 jQuery
小程序自定义组件实现城市选择功能
Jul 18 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
Apr 28 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 Javascript
require.js配合插件text.js实现最简单的单页应用程序
Jul 12 #Javascript
javascript中Date对象应用之简易日历实现
Jul 12 #Javascript
JS导出PDF插件的方法(支持中文、图片使用路径)
Jul 12 #Javascript
浅谈angularJS中的事件
Jul 12 #Javascript
深入剖析JavaScript面向对象编程
Jul 12 #Javascript
JS及PHP代码编写八大排序算法
Jul 12 #Javascript
微信支付 JS API支付接口详解
Jul 11 #Javascript
You might like
PHP 加密与解密的斗争
2009/04/17 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
JavaScript 撑出页面文字换行
2009/06/15 Javascript
jQuery消息提示框插件Tipso
2015/05/04 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
基于vue中css预加载使用sass的配置方式详解
2018/03/13 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
javascript canvas实现简易时钟例子
2020/09/05 Javascript
[53:13]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-GAMING
2014/05/22 DOTA
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
聊聊Python中的pypy
2018/01/12 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
深入理解HTML5定时器requestAnimationFrame的使用
2018/12/12 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
德国网上药房:Apotal
2017/04/04 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
小学语文课后反思精选
2014/04/25 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书