zoukankan      html  css  js  c++  java
  • require实现单页应用程序(SPA)

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

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

    下面来看一下目录

    从上面项目可以看出,我将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%);
    }

    实现效果如下:

    ③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%);
    }

     实现效果如下:

  • 相关阅读:
    VB.NET导出excel并支持中文文件名 中文编码
    后台弹框。刷新不提示确认VB或.NET
    VB.NET读取保存项目中相对路径的XML
    禁止删除表里所有数据
    验证视图状态 MAC 失败的解决办法
    Flash OBJECT IIS7.0上传文件限制的解决方法
    jquery导航菜单上下都行,可以上弹也可以下拉,方便配置使用
    android开发环境之ADT安装,卸载,更新 ADT在线代理网址
    原创 C# 正则表达式 读写 Ini 文件
    原创C# 枚举 多状态 操作
  • 原文地址:https://www.cnblogs.com/lily1010/p/5661684.html
Copyright © 2011-2022 走看看