通過貼近業務和產品運營團隊深入的交流,有助于我們盡快融入一個不熟悉的領域,同時可以閱讀一些專業行業網站上關于進口業務的文章,了解大盤的背景。在進口業務中通過背景的挖掘,我們發現在商品和供應鏈層面上,進口有一些特有的特征與其他業務不同,差異的地方其實往往就是用戶的痛點和后面我們發力的機會點。
Part-time Clouds 是一款兼職信息平臺,你可以在此尋找合適的兼職工作。這款App使用起來十分簡單,不用登錄注冊即可直接可以進入主頁,主頁展示了大量兼職信息,你可以根據需求收藏職位、查看詳情,或一鍵撥打聯系電話,其中還有詳細的職業分類頁面。
如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里
1.vue的生命周期,主要的介紹官網(https://cn.vuejs.org/v2/api/)上都有。
主要說的是created和mounted。之前在寫項目的過程中,需要對DOM節點進行操作(但是在vue里面盡量不要獲取節點進行操作。vue主要是對數據進行操作),在created里面這些操作并不能實現,但是在mounted里面是可以的。
主要原因就是:created是vm實例已經創建但是未完成掛載,而mounted已經部分完成掛載,這么說的原因是,mounted不承諾所有的子組件都會被掛載,如果你希望等到的是整個視圖都渲染完畢,可以用 vm.$nextTick 替換掉mounted.
$nextTick是下次DOM更新循環結束之后執行的回調函數。
2.vue里點擊按鈕,彈框的實現。
通過在父組件上綁定一個show,type為boolean,在子組件用props接收傳過來的show值,show值為true時彈出框顯示,false時不顯示。
父組件:
子組件:
3.v-show與v-if的區別?
v-if與v-show都屬于條件渲染,意思就是根據不同的條件使用不同的模板。
在vue中,v-show只是簡單的修改了樣式,DOM節點是真實存在的,只是隱藏了。
v-if是真實的條件渲染,值為false是不編譯不渲染,當值為true時,才開始編譯。
每個人都應該遵守一定的重要規則,特別是那些從事產品設計的人。而許多設計師卻日復一日地在設計中違反規則,而這是絕對不利于他們的設計的。在本文中,我將解釋什么是設計中的重要規則,以及它對產品和服務中意味著什么。我還將在組織管理、協作和總體性能方面提出這一現象存在的可能含義。在這篇文章中我所要討論的心理現象被稱為米勒法則。我不是要告訴你什么是米勒法則,而是要引導你如何參加測試,以獲得更具有沉浸性的學習效果。
移動端的UI設計有其獨有的一套設計規則和約束。新技術的不斷加入促進了移動平臺的快速增長,而移動端的UI設計也和傳統的平面海報/網頁設計不太一樣。
如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里
下載地址:https://v3.bootcss.com/
1. 下載Bootstrap
進入后下載這個標題的Bootstrap
下載完成后,將所需的css,js復制到工程中即可
2. 拷貝官方的模塊文件
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其后! --> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="css/bootstrap.min.css" rel="stylesheet"> </head> <body> <h1>你好,世界!</h1> <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html>
3. 頁面添加組件
<button type="button" class="btn btn-primary">(首選項)Primary</button>
<div class="btn-group" role="group" aria-label="...">
<button type="button" class="btn btn-default">Left</button>
<button type="button" class="btn btn-default">Middle</button>
<button type="button" class="btn btn-default">Right</button>
</div>
然后將二者結合即可:
<div class="btn-group" role="group" aria-label="...">
<button type="button" class="btn btn-primary">Left</button>
<button type="button" class="btn btn-primary">Middle</button>
<button type="button" class="btn btn-primary">Right</button>
</div>
- 最后的結果如下:
至此你就可以簡單的用前端框架做出美觀的界面了!
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里
摘要: LINK[rel=import]其實有點類似于IFRAME,它引用的對象也是一個完整的文檔,而不是文檔片段,而且里面的SCRIPT也會執行,對跨域的資源訪問同樣有同源策略的限制
首先制作一個頭部文件head.asp,或者一個底部文件foot.asp。如主頁是index.asp,調用頭部代碼是在index.asp文件代碼的開始位置(第一個標記后面,
以前人們常常使用靜態frame框架來做首尾(一般不是iframe)?,F在越來越少見了。主要因為設計網頁相對比較困難,而且還增加了連接數,占用線程較多,速度慢,而且也不利于搜索引擎的對頭尾的收錄
建立一個head.js的文件,找一個html轉js的網站,然后把你頭部的html代碼轉化成js代碼,并放在head.js文件里面。然后在需要調用head文件代碼的地方添加
這個地方src="js/head.js"的路徑是你head.js文件的路徑
以后無論在哪個頁面,想調用該頭部文件,直接插入head.js文件即可
這種方式的優點是方便,便于修改。缺點是由于搜索引擎讀不懂javascript文件,頭部文件和尾部文件搜索引擎無法收錄,而且js文件過大會加重訪問者的瀏覽器負擔,影響訪問速度
最好能有一種方法,就像asp頁面包含其他頁面時那樣,用一小段包含語句就可以實現,不要將需要包含的內容出現在本頁面內,而是分割出去到另外一個自己的頁面
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
asp語言和PHP語言
使用框架來實現
<iframe MARGINWIDTH=0 MARGINHEIGHT=0 HSPACE=0 VSPACE=0 FRAMEBORDER=0 SCROLLING=no src=”head.htm” height=“auto” width="100%"></iframe>
使用.js腳本來實現
document.writeln("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
document.writeln("<html xmlns=\"http://www.w3.org/1999/xhtml\">");
document.writeln("<head>");
document.writeln("<style>");
document.writeln("</style>");
document.writeln("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />");
document.writeln("<title></title>");
document.writeln(" <link href=\'head.css\' rel=\"stylesheet\" type=\"text/css\" />");
document.writeln("</head>");
document.writeln("<body >");
document.writeln(" <div class=\'miaov_head\'>");
document.writeln(" <ul>");
document.writeln(" <li><a href=\"http://www.cnblogs.com/jtjds/\">Mac</a></li>");
document.writeln(" <li><a href=\"http://www.cnblogs.com/jtjds/\">iPhone</a></li>");
document.writeln(" </ul>");
document.writeln("</div>");
document.writeln(" ");
document.writeln("</body>");
document.writeln("</html>");
document.writeln("");
Behavior的download方式
如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里
今天寫css時發現,圖片加起來剛好是900px的三張圖片,不能在一個900px寬容器放下,因為圖片之間有間隔,我猜是瀏覽器把兩個img標簽之間的空格當成了空白節點。
在網上找到了幾個不錯的解決方法:
1.多個img標簽寫在一行
效果前:
效果后:
2.在img標簽的父級上寫:font-size:0;//這個在解決display:inline-block出現的問題也有幫助
效果:
3.使用display:block(img是內聯元素)//要float一下才行
效果:
4.使用letter-spacing屬性
效果:<img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/> <img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/>
<img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/><img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/>
<div style="font-size:0"> <img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/> <img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/> </div>
<img src="/i/eg_tulip.jpg" alt="郁金香" height="100px" style="display:block"/> <img src="/i/eg_tulip.jpg" alt="郁金香" height="100px" style="display:block"/>
<div style="letter-spacing:-800px"><!--letter-spacing的值無論是負多少都不會產生重疊--> <img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/> <img src="/i/eg_tulip.jpg" alt="郁金香" height="100px"/> </div>
摘要: 前端性能優化是一個很寬泛的概念,本書前面的部分也多多少少提到一些前端優化方法,這也是我們一直在關注的一件重要事情。配合各種方式、手段、輔助系統,前端優化的最終目的都是提升用戶體驗,改善頁面性能,我們常常竭盡全力進行前端頁面優化,但卻忽略了這樣做的效果和意義。先不急于探究前端優化具體可以怎樣去做,先看看什么是前端性能,應該怎樣去了解和評價前端頁面的性能。
相對于桌面端瀏覽器,移動端Web瀏覽器上有一些較為明顯的特點:設備屏幕較小、新特性兼容性較好、支持一些較新的HTML5和CSS3特性、需要與Native應用交互等。但移動端瀏覽器可用的CPU計算資源和網絡資源極為有限,因此要做好移動端Web上的優化往往需要做更多的事情。
首先,在移動端Web的前端頁面渲染中,桌面瀏覽器端上的優化規則同樣適用,此外針對移動端也要做一些的優化來達到更好的效果。需要注意的是,并不是移動端的優化原則在桌面瀏覽器端就不適用,而是由于兼容性和差異性的原因,一些優化原則在移動端更具代表性。
1.首屏數據請求提前,避免JavaScript文件加載后才請求數據
為了進一步提升頁面加載速度,可以考慮將頁面的數據請求盡可能提前,避免在JavaScript加載完成后才去請求數據。通常數據請求是頁面內容渲染中關鍵路徑最長的部分,而且不能并行,所以如果能將數據請求提前,可以極大程度上縮短頁面內容的渲染完成時間。
2.首屏加載和按需加載,非首屏內容滾屏加載,保證首屏內容最小化
由于移動端網絡速度相對較慢,網絡資源有限,因此為了盡快完成頁面內容的加載,需要保證首屏加載資源最小化,非首屏內容使用滾動的方式異步加載。一般推薦移動端頁面首屏數據展示延時最長不超過3秒。目前中國聯通3G的網絡速度為338KB/s(2.71Mb/s),所以推薦首屏所有資源大小不超過1014KB,即大約不超過1MB。
3.模塊化資源并行下載
在移動端資源加載中,盡量保證JavaScript資源并行加載,主要指的是模塊化JavaScript資源的異步加載,例如AMD的異步模塊,使用并行的加載方式能夠縮短多個文件資源的加載時間。
4.inline首屏必備的CSS和JavaScript
通常為了在HTML加載完成時能使瀏覽器中有基本的樣式,需要將頁面渲染時必備的CSS和JavaScript通過<script>或<style>內聯到頁面中,避免頁面HTML載入完成到頁面內容展示這段過程中頁面出現空白。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>樣例</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0, maximum-scale=1.0,user-scalable=no">
<style>
/* 必備的首屏CSS */
html, body{
margin: 0;
padding: 0;
background-color: #ccc;
}
</style>
</head>
<body>
</body>
5.meta dns prefetch設置DNS預解析
設置文件資源的DNS預解析,讓瀏覽器提前解析獲取靜態資源的主機IP,避免等到請求時才發起DNS解析請求。通常在移動端HTML中可以采用如下方式完成。
<!-- cdn域名預解析 -->
<meta http-equiv="x-dns-prefetch-control" content="on">
<link rel="dns-prefetch" >
6.資源預加載
對于移動端首屏加載后可能會被使用的資源,需要在首屏完成加載后盡快進行加載,保證在用戶需要瀏覽時已經加載完成,這時候如果再去異步請求就顯得很慢。
7.合理利用MTU策略
通常情況下,我們認為TCP網絡傳輸的最大傳輸單元(Maximum Transmission Unit,MTU)為1500B,即網絡一個RTT(Round-Trip Time,網絡請求往返時間)時間內可以傳輸的數據量最大為1500字節。因此,在前后端分離的開發模式中,盡量保證頁面的HTML內容在1KB以內,這樣整個HTML的內容請求就可以在一個RTT時間內請求完成,最大限度地提高HTML載入速度。
1.合理利用瀏覽器緩存
除了上面說到的使用Cache-Control、Expires、Etag和Last-Modified來設置HTTP緩存外,在移動端還可以使用localStorage等來保存AJAX返回的數據,或者使用localStorage保存CSS或JavaScript靜態資源內容,實現移動端的離線應用,盡可能減少網絡請求,保證靜態資源內容的快速加載。
2.靜態資源離線方案
對于移動端或Hybrid應用,可以設置離線文件或離線包機制讓靜態資源請求從本地讀取,加快資源載入速度,并實現離線更新。關于這塊內容,我們會在后面的章節中重點講解。
3.嘗試使用AMP HTML
AMP HTML可以作為優化前端頁面性能的一個解決方案,使用AMP Component中的元素來代替原始的頁面元素進行直接渲染。
<!-- 不推薦 -->
<video width="400" height="300" src="http://www.domain.com/videos/myvideo.mp4" poster="path/poster.jpg">
<div fallback>
<p>Your browser doesn’t support HTML5 video</p>
</div>
<source type="video/mp4" src="foo.mp4">
<source type="video/webm" src="foo.webm">
</video>
<!-- 推薦 -->
<amp-video width="400" height="300" src="http://www.domain.com/videos/myvideo.mp4" poster= "path/poster.jpg">
<div fallback>
<p>Your browser doesn’t support HTML5 video</p>
</div>
<source type="video/mp4" src="foo.mp4">
<source type="video/webm" src="foo.webm">
</amp-video>
1.圖片壓縮處理
在移動端,通常要保證頁面中一切用到的圖片都是經過壓縮優化處理的,而不是以原圖的形式直接使用的,因為那樣很消耗流量,而且加載時間更長。
2.使用較小的圖片,合理使用base64內嵌圖片
在頁面使用的背景圖片不多且較小的情況下,可以將圖片轉化成base64編碼嵌入到HTML頁面或CSS文件中,這樣可以減少頁面的HTTP請求數。需要注意的是,要保證圖片較小,一般圖片大小超過2KB就不推薦使用base64嵌入顯示了。
.class-name {
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAALCAMAAABxsOwqAAAAYFBMVEWnxwusyQukxQudwQyZvgyhxAyfwgyxzAsUHQGOuA0aJAERGAFIXwSTugyEqgtqhghQZgUwQQIpOQKbuguVtQuKrAuCowp2kQlheghTbQZHWQU7SwVAVgQ6TgQlLwMeKwFOemyQAAAAVElEQVQI1y3JVRaAIAAF0UconXbvf5ei8HfPDIQQhBAAFE10iKig3SLRNN4SP/p+N08VC0YnfIlNWtqIkhg/TPYbCvhqdHAWRXPZSp3g3CWZvVLXC6OJA3ukv0AaAAAAAElFTkSuQmCC');
}
3.使用更高壓縮比格式的圖片
使用具有較高壓縮比格式的圖片,如webp等。在同等圖片畫質的情況下,高壓縮比格式的圖片體積更小,能夠更快完成文件傳輸,節省網絡流量。
<img src="http://cdn.domain.com/path/photo.webp" alt="webp格式圖片">
4.圖片懶加載
為了保證頁面內容的最小化,加速頁面的渲染,盡可能節省移動端網絡流量,頁面中的圖片資源推薦使用懶加載實現,在頁面滾動時動態載入圖片。
<img data-src="http://cdn.domain.com/path/photo.jpg" alt="懶加載圖片">
5.使用Media Query或srcset根據不同屏幕加載不同大小圖片
在介紹響應式的章節中我們了解到,針對不同的移動端屏幕尺寸和分辨率,輸出不同大小的圖片或背景圖能保證在用戶體驗不降低的前提下節省網絡流量,加快部分機型的圖片加載速度,這在移動端非常值得推薦。
6.使用iconfont代替圖片圖標
在頁面中盡可能使用iconfont來代替圖片圖標,這樣做的好處有以下幾個:使用iconfont體積較小,而且是矢量圖,因此縮放時不會失真;可以方便地修改圖片大小尺寸和呈現顏色。但是需要注意的是,iconfont引用不同webfont格式時的兼容性寫法,根據經驗推薦盡量按照以下順序書寫,否則不容易兼容到所有的瀏覽器上。
@font-face {
font-family: iconfont;
src: url("./iconfont.eot");
src: url("./iconfont.eot?#iefix") format("eot"),
url("./iconfont.woff") format("woff"),
url("./iconfont.ttf") format("truetype");
}
7.定義圖片大小限制
加載的單張圖片一般建議不超過30KB,避免大圖片加載時間長而阻塞頁面其他資源的下載,因此推薦在10KB以內。如果用戶上傳的圖片過大,建議設置告警系統,幫助我們觀察了解整個網站的圖片流量情況,做出進一步的改善。
1.盡量使用id選擇器
選擇頁面DOM元素時盡量使用id選擇器,因為id選擇器速度最快。
2.合理緩存DOM對象
對于需要重復使用的DOM對象,要優先設置緩存變量,避免每次使用時都要從整個DOM樹中重新查找。
// 不推薦
$('#mod .active').remove('active');
$('#mod .not-active').addClass('active');
// 推薦
let $mod = $('#mod');
$mod.find('.active').remove('active');
$mod.find('.not-active').addClass('active');
3.頁面元素盡量使用事件代理,避免直接事件綁定
使用事件代理可以避免對每個元素都進行綁定,并且可以避免出現內存泄露及需要動態添加元素的事件綁定問題,所以盡量不要直接使用事件綁定。
// 不推薦
$('.btn').on('click', function(e){
console.log(this);
});
// 推薦
$('body').on('click', '.btn', function(e){
console.log(this);
});
4.使用touchstart代替click
由于移動端屏幕的設計,touchstart事件和click事件觸發時間之間存在300毫秒的延時,所以在頁面中沒有實現touchmove滾動處理的情況下,可以使用touchstart事件來代替元素的click事件,加快頁面點擊的響應速度,提高用戶體驗。但同時我們也要注意頁面重疊元素touch動作的點擊穿透問題。
// 不推薦
$('body').on('click', '.btn', function(e){
console.log(this);
});
// 推薦
$('body').on('touchstart', '.btn', function(e){
console.log(this);
});
5.避免touchmove、scroll連續事件處理
需要對touchmove、scroll這類可能連續觸發回調的事件設置事件節流,例如設置每隔16ms(60幀的幀間隔為16.7ms,因此可以合理地設置為16ms)才進行一次事件處理,避免頻繁的事件調用導致移動端頁面卡頓。
// 不推薦
$('.scroller').on('touchmove', '.btn', function(e){
console.log(this);
});
// 推薦
$('.scroller').on('touchmove', '.btn', function(e){
let self = this;
setTimeout(function(){
console.log(self);
}, 16);
});
6.避免使用eval、with,使用join代替連接符+,推薦使用ECMAScript 6的字符串模板
這些都是一些基礎的安全腳本編寫問題,盡可能使用較率的特性來完成這些操作,避免不規范或不安全的寫法。
7.盡量使用ECMAScript 6+的特性來編程
ECMAScript 6+一定程度上更加安全,而且部分特性執行速度更快,也是未來規范的需要,所以推薦使用ECMAScript 6+的新特性來完成后面的開發。
1.使用Viewport固定屏幕渲染,可以加速頁面渲染內容
一般認為,在移動端設置Viewport可以加速頁面的渲染,同時可以避免縮放導致頁面重排重繪。在移動端固定Viewport設置的方法如下。
<!-- 設置viewport不縮放 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
2.避免各種形式重排重繪
頁面的重排重繪很耗性能,所以一定要盡可能減少頁面的重排重繪,例如頁面圖片大小變化、元素位置變化等這些情況都會導致重排重繪。
3.使用CSS3動畫,開啟GPU加速
使用CSS3動畫時可以設置transform: translateZ(0)來開啟移動設備瀏覽器的GPU圖形處理加速,讓動畫過程更加流暢。
-webkit-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);
4.合理使用Canvas和requestAnimationFrame
選擇Canvas或requestAnimationFrame等更的動畫實現方式,盡量避免使用setTimeout、setInterval等方式來直接處理連續動畫。
5.SVG代替圖片
部分情況下可以考慮使用SVG代替圖片實現動畫,因為使用SVG格式內容更小,而且SVG DOM結構方便調整。
6.不濫用float
在DOM渲染樹生成后的布局渲染階段,使用float的元素布局計算比較耗性能,所以盡量減少float的使用,推薦使用固定布局或flex-box彈性布局的方式來實現頁面元素布局。
7.不濫用web字體或過多font-size聲明
過多的font-size聲明會增加字體的大小計算,而且也沒有必要的。
1.嘗試使用SPDY和HTTP 2
在條件允許的情況下可以考慮使用SPDY協議來進行文件資源傳輸,利用連接復用加快傳輸過程,縮短資源加載時間。HTTP 2在未來也是可以考慮嘗試的。
2.使用后端數據渲染
使用后端數據渲染的方式可以加快頁面內容的渲染展示,避免空白頁面的出現,同時可以解決移動端頁面SEO的問題。如果條件允許,后端數據渲染是一個很不錯的實踐思路。后面的章節會詳細介紹后端數據渲染的相關內容。
3.使用Native View代替DOM的性能劣勢
可以嘗試使用Native View的MNV開發模式來避免HTML DOM性能慢的問題,目前使用MNV的開發模式已經可以將頁面內容渲染體驗做到接近客戶端Native應用的體驗了。
關于頁面優化的常用技術手段和思路主要包括以上這些,盡管列舉出很多,但仍可能有少數遺漏,可見前端性能優化不是一件簡簡單單的事情,其涉及的內容很多。大家可以根據實際情況將這些方法應用到自己的項目當中,要想全部做到幾乎是不可能的,但做到用戶可接受的原則還是很容易實現的。
于此同時我們要清楚的是,在我們做到了優化的同時也付出了很大的代價,這也是前端優化的一個問題。理論上這些優化都是可以實現的,但是作為工程師我們也要明白懂得權衡。優化提升了用戶體驗,使數據加載更快,但是項目代碼卻可能打亂,異步內容要拆分出來,首屏的一個雪碧圖可能要分成兩個,頁面項目代碼維護成本成倍增加,項目結構也可能變得混亂。
所以前期在設計構建、組件的解決方案時要解決好異步的自動處理問題。任何一部分優化都可以做得很深入,但不一定都值得,在優化的同時也要盡量考慮性價比,這才是我們作為一名前端工程師處理前端優化時應該具有的正確思維。
藍藍設計( www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務
如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里
17年一月9號,小程序剛發布的時候,個人很幸運的成為第一批吃螃蟹的人,當然也是第一批采坑的人。
小程序是基于微信的一種應用,使用微信自定義的組件,讓我們使用JavaScript的方式,達到匹配原生應用的效果。小程序的一大優勢就是,你只要有個微信,你就能搜索你所需要的點餐、買票、旅游等一些日常需求的小程序,而且——用完即毀、無需下載。
小程序是最適合前端開發人員,你所需的知識僅僅是JavaScript、css、html的基本知識,如果你有其他單頁面應用的開發經驗,那小程序會很快上手,但是這都不是必須的。
app.js 小程序的啟動js文件。
app.json 小程序的全局json配置文件。同時也可以進行pages配置、底部tab切換的配置等等。
app.wxss 小程序的全局樣式。
pages 小程序的相關頁面。在app.json中配置了pages,pages文件夾就會自動出現對應的頁面。
js 是小程序的邏輯部分。
1、push路由
2、替換路由
3、路由回退
4、tab切換
5、路由清理替換
wx.navigateTo({
//index.js
Toast分三種:sucess、loading、none;
onLoad——初始化加載一次
生命周期函數的本質:給開發人員一個觸發時機的暴露的接口。在這樣的時機下,我們可以做什么?
vue中:this.message = ‘hello world’;
使用onShareAppMessage函數可以實現分享轉發功能。
小程序的登錄是一個項目的核心邏輯。分為三步。
第一步:wx.login,獲取code。
小程序介紹
小程序開發所需要的技能
小程序的知識體系的梳理
項目整體架構
pages
wxss 小程序的對應page的布局,也就是局部樣式。相當于web網頁的css。
wxml 頁面布局。相當于web網頁的html。
json 小程序的局部頁面配置。
小程序路由
wx.navigateTo({
url:’/pages/index/index’
});
wx.redirectTo({
url:”/pages/index/index”
});
wx.navigateBack({
delta: 1
});
wx.switchTab({
url:’相關頁面路徑’
});
wx.reLaunch({
url:’新的頁面路徑’
});
小程序路由傳參
url: “/pages/index/index?id=”+inputValue
});
就會把inputValue的值傳遞過去。在相應的界面的onLoad周期函數的options中接收。
onLoad: function(options){
console.log(options.id);
}
小程序界面交互(Toast、Modal)
Modal:title、content屬性是必須要的。
modal還有一些其他的屬性,比如確認按鈕的顯示。
小程序page的生命周期
onReady——頁面初次渲染完成
onShow——監聽頁面顯示
onHide——監聽頁面隱藏
onUnload——監聽頁面卸載
小程序如何更改data
小程序中:
this.setData({
message: ‘hello world’
})
小程序分享功能
onShareAppMessage: function(){
return {
title:’圖吧同行’,
path:’/pages/index/index’,
desc:’描述信息’
}
}
登錄功能
第二步:把code發送給我們的后臺服務器,得到openId。
第三步:服務器把openId返回給你。你就知道每次是哪一個用戶登錄了小程序。
藍藍設計的小編 http://www.syprn.cn