微信小程序實現(xiàn)獲取用戶信息替換用戶名和頭像到首頁
?一、形成空白文件
1、點擊打開目錄
2、刪除除了project.config.json(項目配置文件)以外所有文件。
3、新建“app.json”
4、接下來我們在app.json中寫入配置
{}
5、保存,我們可以看到編譯器報錯,因為目前文件為空
二、小程序頁面路徑配置
1、首先在app.json中寫入
{ "pages": [ "pages/index/index" ] }
第一個pages:指的是項目里面有哪些頁面;第二個pages:指的是pages目錄。
保存,一定要先保存要不然建好回車沒有反應。
2、右擊pages新建目錄,命名為index,在index下新建pages命名為index
注意:需要在pages下新建目錄才能新建頁面?,F(xiàn)在可以看到開發(fā)者工具新建的頁面,自動放入pages數(shù)組中。
在 app.json
中,pages
數(shù)組是必填的。它規(guī)定小程序中所有頁面的地址,同時規(guī)定了小程序啟動時的首頁,就是 pages
數(shù)組的首位所指的頁面。
3、當 pages
成功配置后,小程序就可以正常運行了(新建頁面文件后,小程序已經正常運行無報錯了)。
但如果想要一些個性化配置,我們依然可以繼續(xù)修改 app.json
。
三、修改小程序頁面
修改app.json代碼如下:
{ "pages": [ "pages/index/index" ], "window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#ff0000", "navigationBarTitleText": "我的第一個小程序", "navigationBarTextStyle": "white" } }
是不是看到變化了!
在app.json中,window用于設置小程序的狀態(tài)欄,導航條,標題,窗口,背景色。
具體見 https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html
四、與WXML玩耍
1、插入文字
當我們打開index文件夾下面的index.wxml文件,可以看到開發(fā)者工具在自動生成頁面的時候,默認生成代碼如下。
pages/index/index.wxml <text>pages/index/index.wxml</text>
第一行是注釋,對代碼解釋說明。計算機執(zhí)行程序會自動跳過注釋編譯。第二行代碼前后都是由尖括號擴起來部分中間即是pages/index/index.wxml。
在小程序中, <text>代表文字視覺組件。在它們中間插入的內容,將會直接顯示在小程序的相應位置中
試試:把中間改成hello World!保存運行
<text>Hello World</text>
2、插入圖片
下面我們在小程序中插入一張圖片。
首先在index頁面下打開目錄
新建image文件夾,根目錄下創(chuàng)建
拖一張自己喜歡的圖片進去,再回到開發(fā)者工具就回看到文件夾和圖片都出現(xiàn)在目錄下,與根目錄平行,一定要注意別建錯文件夾。
接下來我們在wxml中插入代碼
與 一樣, <image 也是小程序的一個視覺組件,它代表在小程序里插入一張圖片。
<image src='/image/a.jpg'></image>
效果如下:
3、分割代碼
在開發(fā)過程中把屏幕元素分割成不同部分,用獨立的樣式代碼提高編碼效率
例如我們用對元素部分進行區(qū)分,增加。
這樣我們就可以統(tǒng)一處理圖片的樣式和其他操作。
五、與wxss玩耍
在頁面中打開index.wxss文件
1、處理圖片
從圖片開始處理,我們這樣設置image的屬性。
image { width: 400rpx; height: 150prx; border-radius: 50%; }
看,他變圓了!
2、處理文字
text{ font-size: 64rpx; color:crimson; }
查看文字的變化。
3、調整布局
添加屬性
view { display: flex; flex-direction: column; align-items: center; justify-content: space-around; height: 800rpx; }
在屬性里面,我們首先用到的是flex,隨后我們用到的是flex-direction
屬性,將中的視覺元素,按照縱向進行排列,align-items
屬性,它用于設定橫向排版模式。將 align-items
值設為 center
,就能讓視覺元素居中顯示,
justify-content: space-around 將元素均勻地排布在頁面上,再后來設置view的高度,就像html布局中一個盒子的高度=view中所有元素的高度。
4、長度單位rpx(responsive pixel):
可以根據(jù)屏幕寬度進行自適應。規(guī)定屏幕寬為750rpx。如在iPhone6上,屏幕寬度為375px,共有750個物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。
建議:開發(fā)微信小程序時設計師可以用iPhone6作為視覺稿的標準。
六、獲取用戶資料
當用戶對小程序有需求,我們是不是應該添加按鈕或者對話框與用戶進行交互,選擇性的滿足用戶不同需求。下面我們以添加按鈕事件為例。
在WXML文件中添加按鈕
pages/index/index.wxml <view> <text>Hello China</text> <image src='/image/a.jpg'></image> <button open-type='getUserInfo'>我是按鈕點我把</button> </view>
接下來我們開始編寫js文件,接收微信傳給我我們的數(shù)據(jù)。
我們打開index.js,我們可以看到里面有開發(fā)者工具自動生成的生命周期函數(shù),我們直接增加一個方法
像這樣
然后我們開始編寫一個用戶點擊按鈕反饋回去的數(shù)據(jù)。
新建函數(shù) getProfile
當這個函數(shù)接收到用戶資料后,就直接輸出到控制臺中。
// pages/index/index.js Page({ getProfile(res){ console.log(res) } })
console.log() 函數(shù)可以將變量、數(shù)據(jù),寫入開發(fā)者工具的控制臺中
1、完善wxml
pages/index/index.wxml <view> <text>Hello China</text> <image src='/image/a.jpg'></image> <button open-type='getUserInfo' bindgetuserinfo='getProfile'>我是按鈕點我吧</button> </view>
點擊按鈕后,查看控制臺
可以看到,在這么多的數(shù)據(jù)中,微信將用戶數(shù)據(jù)包裹在這個對象里的 detail.userInfo
中。嘗試輸出其中 detail.userInfo
的內容,就可以看到干凈的用戶資料了。
在js文件中添加
Page({ getProfile(res){ console.log(res.detail.userInfo) } })
點擊按鈕查看控制臺信息
2、結果輸出到界面
接下來,我們就來嘗試將小程序界面中原本的默認頭像和歡迎語,替換為用戶頭像和昵稱
在小程序中,界面層(WXML)和邏輯層(JS)之間有一種特殊的數(shù)據(jù)交換方式,名為「數(shù)據(jù)綁定」。WXML 可以與 JS 中的特殊的變量進行綁定,當 JS 修改變量的時候,變化將會直接傳入界面層。
// pages/index/index.js Page({ getProfile(res){ this.setData({ "profile": res.detail.userInfo }) } })
這里我們新建了一個變量profile,我們把用戶資料寫入變量中,接著可以利用 Page()
對象本身含有的 setData()
函數(shù)?;氐?nbsp;index.js
,就可以用 setData()
將用戶數(shù)據(jù)寫入變量。
接著我們在WXML文件中綁定這些變量,將用戶資料輸出到首頁。
pages/index/index.wxml <view> <text>{{profile.nickName}}</text> <image src='{{profile.avatarUrl}}'></image> <button open-type='getUserInfo' bindgetuserinfo='getProfile'>我是按鈕點我吧</button> </view>
到這我們再考慮一種因素,當小程序剛啟動獲取我們的資料有延遲,這樣顯示的界面存在留白怎么處理?
3、優(yōu)化程序
我們設置一個默認界面,給頁面加載寫入初始化數(shù)據(jù)
在js文件里面添加一個data對象
// pages/index/index.js Page({ getProfile(res){ this.setData({ "profile": res.detail.userInfo }) }, data:{ "profile":{ nickName:"HELLO CHINA" } } })
保存初始化頁面:當然你可以加圖片哈,我這主要突出一個效果
點擊按鈕后界面
小程序初始化進入的界面是默認界面,點擊按鈕后獲取到用戶資料并自動替換。
到此這篇關于微信小程序實現(xiàn)獲取用戶信息替換用戶名和頭像到首頁的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
TypeScript中正確使用interface和type的方法實例
在ts中定義類型由兩種方式:接口(interface)和類型別名(type alias),interface只能定義對象類型,下面這篇文章主要給大家介紹了關于TypeScript中正確使用interface和type的相關資料,需要的朋友可以參考下2021-09-09原生JS實現(xiàn)循環(huán)Nodelist Dom列表的4種方式示例
這篇文章主要介紹了原生JS實現(xiàn)循環(huán)Nodelist Dom列表的4種方式,結合具體實例形式分析了javascript循環(huán)遍歷Nodelist Dom列表的常用操作技巧,需要的朋友可以參考下2018-02-02Draggable Elements 元素拖拽功能實現(xiàn)代碼
雖說js框架到處都是, 都封裝了很多實用的功能,能快速的讓我們實現(xiàn)如動畫,元素拖拽等功能, 不過由于好奇心的驅使, 有時想一探究竟, 看看一些功能是如何實現(xiàn)的2011-03-03淺談Javascript數(shù)據(jù)屬性與訪問器屬性
下面小編就為大家?guī)硪黄獪\談Javascript數(shù)據(jù)屬性與訪問器屬性。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07JS 獲取瀏覽器和屏幕寬高等信息的實現(xiàn)思路及代碼
本節(jié)代碼主要使用了Document對象關于窗口的一些屬性,附實現(xiàn)代碼及源程序解決,有需求的朋友可以參考下2013-07-07