require簡(jiǎn)單實(shí)現(xiàn)單頁(yè)應(yīng)用程序(SPA)
寫(xiě)了一個(gè)測(cè)試代碼,用require.js配合它的一個(gè)插件text.js實(shí)現(xiàn)了最簡(jiǎn)單的單頁(yè)應(yīng)用程序,簡(jiǎn)單的記錄一下,方便以后復(fù)習(xí),
git地址:https://github.com/lily1010/requireSPA
下面來(lái)看一下目錄

從上面項(xiàng)目可以看出,我將css單獨(dú)抽離出去,實(shí)現(xiàn)了按需加載,即加載test1.html時(shí)會(huì)加載test1.css,加載test2.html時(shí)會(huì)加載test2.css.
一 先來(lái)看入口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>
上面很簡(jiǎn)單,先定義requirejs入口data-main,另外為了按需加載css,我定義了一個(gè)類css-attribute.
二 在main.js配置路徑和做邏輯處理
require.config({
paths:{
"jquery":"lib/jquery-1.11.0",
"text":"lib/text",
"text1":"../template/test1.html", //這里千萬(wàn)注意路徑
"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){
// 進(jìn)入頁(yè)面先設(shè)置為頁(yè)面test1.html內(nèi)容
$(".css-attribute").html(css1);
$(".page").html(template1);
// 點(diǎn)擊skip按鈕設(shè)置為頁(yè)面test2.html內(nèi)容
$(".skip").click(function(){
$(".css-attribute").html(css2);
$(".page").html(template2);
})
})
上面都是最基礎(chǔ)的require配置,注意text.js用法就可以了,很簡(jiǎn)單的
三 來(lái)看看2個(gè)頁(yè)面結(jié)構(gòu)以及樣式
①test1.html代碼如下:
<div class="test1"> <button class="skip">點(diǎn)擊我跳到SPA第二頁(yè)</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%);
}
實(shí)現(xiàn)效果如下:

③test2.html代碼如下:
<div class="test2"> <button class="skip2">我是第二頁(yè),點(diǎn)擊我回第一頁(yè)</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%);
}
實(shí)現(xiàn)效果如下:

以上這篇require簡(jiǎn)單實(shí)現(xiàn)單頁(yè)應(yīng)用程序(SPA)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
微信小程序開(kāi)發(fā)常見(jiàn)問(wèn)題及解決方案
這篇文章主要介紹了微信小程序開(kāi)發(fā)常見(jiàn)問(wèn)題及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
詳解bootstrap的modal-remote兩種加載方式【強(qiáng)化】
本篇文章主要介紹了詳解bootstrap的modal-remote兩種加載方式【強(qiáng)化】,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-01-01
淺談JavaScript Math和Number對(duì)象
這篇文章主要簡(jiǎn)單介紹了JavaScript Math和Number對(duì)象的相關(guān)資料,需要的朋友可以參考下2015-01-01
JavaScript中Object和Function的關(guān)系小結(jié)
JavaScript 中 Object 和 Function 的關(guān)系是微妙的,他們互為對(duì)方的一個(gè)實(shí)例。2009-09-09
TypeScript中的類型斷言[as語(yǔ)法|<>語(yǔ)法]的使用
本文主要介紹了TypeScript中的類型斷言[as語(yǔ)法|<>語(yǔ)法]的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06

