「小程序」利用官方組件快速搭建留言板

2020-12-22 默默的成長學習

前言:小程序越來越實用了,那麼本著實用和快速上手的目的;咱們就主要講一下,如何快速的搭建一個小型的留言板,並且和後端進行交互。

首先認識目錄結構

app.js 小程序邏輯

app.json 小程序公共配置

app.wxss 小程序公共樣式表

project.config.json 小程序項目配置

sitemap.json map索引文件

pages 頁面文件夾

index 首頁

index.wxml 向用戶展示的頁面

index.js 頁面主要邏輯

index.wxss 當前頁面樣式

index.json 當前頁面配置

utils 工具包文件夾

utils.js 工具包

詳解app.json

{

//主要核心,如果有新建了頁面,必須在這添加上

"pages":[

"pages/index/index",

"pages/logs/logs",

....

],

"window":{

"backgroundTextStyle":"light",

"navigationBarBackgroundColor": "#fff",

"navigationBarTitleText": "WeChat",

"navigationBarTextStyle":"black"

},

"style": "v2",

"sitemapLocation": "sitemap.json"

}

詳解app.js

globalData: {

userInfo: null

}

主要用於全局存儲使用,比如用戶信息,需要各種頁面都使用到的數據

開始第一步,查看官方文檔

訪問:https://developers.weixin.qq.com/miniprogram/dev/component/input.html

利用官方提示的橫向和縱向布局成如下樣例

代碼,我們為了快讓大家了解如何搭建頁面,直接把index.wxml修改如下

<!--index.wxml-->

<view>

<view>

<view>

<view>

<text>留言板</text>

</view>

<view>

<view style="flex-direction:row;">

<view>

<view>

<button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 獲取頭像暱稱 </button>

<block wx:else>

<image bindtap="bindViewTap" src="{{userInfo.avatarUrl}}" mode="cover"></image>

<text>{{userInfo.nickName}}</text>

</block>

</view>

</view>

</view>

</view>

</view>

</view>

<view>

<view>

<view style="flex-direction:column;">

<view>

<view>

<view>郵箱</view>

<view>

<view>

<input auto-focus value="{{email}}" bindinput="bindInput" data-name="email" placeholder="請輸入郵箱" />

</view>

</view>

</view>

</view>

<view>

<view>

<view>內容</view>

<view>

<view>

<textarea placeholder="請填寫您的意見" value="{{content}}" bindinput="bindInput" data-name="content" placeholder-style="color:red;" />

</view>

</view>

</view>

</view>

<view>

<view>

<view style="margin-top:10px">

<button type="primary" size="mini" bindtap="submit"> 提交 </button>

<button type="warn" size="mini" bindtap="rest"> 重置 </button>

</view>

</view>

</view>

</view>

</view>

</view>

</view>

樣式,index.wxss,默認input都是無邊框等,我們加上邊框

/**index.wxss**/

.container{

padding: 10rpx;

display: block;

}

input {

border: 1px solid rgb(44, 36, 44);

}

textarea {

border: 1px solid rgb(44, 36, 44);

}

.userinfo {

display: flex;

flex-direction: column;

align-items: center;

}

.userinfo-avatar {

width: 128rpx;

height: 128rpx;

margin: 20rpx;

border-radius: 50%;

}

.userinfo-nickname {

color: #aaa;

}

.usermotto {

margin-top: 200px;

}

綁定數據,及動態設置數據

這個就必較核心了,我們做然後都是需要數據交互的,所以請耐心看如何設置

首先在index.js,找到data參數,並新加兩個email和content參數

data: {

motto: 'Hello World',

userInfo: {},

hasUserInfo: false,

canIUse: wx.canIUse('button.open-type.getUserInfo'),

//新增

email: "",

content: "",

},

index.wxml中的input使用: value="{{email}}"

<input auto-focus value="{{email}}" bindinput="bindInput" data-name="email" placeholder="請輸入郵箱" />

上面是讀取,接下來就是設置數據

//通過 bindinput="bindInput" 雙引號為自定義函數

bindInput:function(e){

var tempJson = {}

tempJson[e.currentTarget.dataset.name]=e.detail.value

this.setData(tempJson)

},

//以上代碼應寫在index.js中

以上圖片是我們針對獲取用戶輸入的時候對象下的數據結構介紹,通過圖片可以看到「e」都包含了那些內容。主要注意 e.detail.value,e.currentTarget.dataset

e.detail.value 是用戶輸入的值

e.currentTarget.dataset 是指我們在input標籤上設置的標記,通過data-xxxx="xxx" 來設置

我們為什麼這樣寫,主要是因為如果有10個input我們是不是要寫10個js綁定方法?

所以為了通用方案我們就通過標記動態設置數據,達到1個方法兼容所有用戶輸入。

重置

index.wxml

<button type="primary" size="mini" bindtap="submit"> 提交 </button>

<button type="warn" size="mini" bindtap="rest"> 重置 </button>

注意bindtap ,這個函數就是監控用戶點擊的事件

index.js 添加rest函數

rest: function () {

// that = this ,是因為js中使用了很多回調函數,導致this指向不是根,而是當前的對象

// 為了使用根的this對象,就需要通過臨時變量來解決掉作用域的問題

var that = this

wx.showModal({

title: "提示",

content: "是否清空",

success(res) {

if (res.confirm) {

that.setData({

email: "",

content: "",

})

} else if (res.cancel) {

console.log('用戶點擊取消')

}

}

})

},

點擊 重置 效果如下:

提交

上面已經有bindtap="submit"

我們主要看index.js submit方法

submit: function () {

var that = this

wx.showLoading({

title: '提交中...',

})

setTimeout(function () {

wx.hideLoading()

}, 2000)

wx.request({

url: 'https://xx.com/test.php', //僅為示例,並非真實的接口地址

data: {

email: that.data.email,

content: that.data.content

},

header: {

'content-type': 'application/json' // 默認值

},

success(res) {

console.log(res.data)

}

})

},

//以上就是一個我們日常和後端進行交互的一個請求,如果大家會jquery的ajax提交,這個一看就明白

提示:url 必須是https,也必須在對應的網頁端設置域名

如果填寫不正確點擊提交的時候就會提示:

總結

小程序發展到現在其實開發已經比較成熟了,所以大家可以開心的去做自己的小程序吧。入手起來按照以上內容可以快速的了解到渲染,綁定,與服務端交互,封裝方法等快捷開發。

微信小程序後續,「看簡識繁」小程序

相關焦點

  • 各MCN機構公會加入微信直播帶貨,小程序提供官方直播組件
    在主論壇的小程序環節,微信表示,2020年微信小程序將提供官方直播組件,支持小程序商家直播賣貨。在用戶側,小程序將會通過品牌認證、物流工具、交易保障這三個能力讓用戶購物更放心。同時通過一物一碼讓商品成為渠道。目前該功能已經上線。
  • 微信小程序發布流程:公司、個人如何註冊小程序
    如今製作微信小程序已經是非常簡單的事了,即使是完全不懂技術的小白,也能利用小程序製作工具快速生成小程序,基本上選一個模板就能快速把頁面搭建好。不過,雖然小程序頁面搭建很簡單,但還有不少人不知道頁面搭建成功後,該如何讓小程序上線、被搜索到,不清楚小程序發布流程。所以接下來就跟大家科普下具體的微信小程序發布流程,以及常見的幾個問題。
  • 四平百度小程序搭建怎麼選
    四平百度小程序搭建怎麼選,與企業共成長。四平百度小程序搭建怎麼選, 系統採用高效、簡潔、強悍的模板標籤,只要懂HTML就可快速開發企業網站;系統採用PHP語言開發,使用自主研發的高速多層開發框架及緩存技術;百度智能小程序源碼,含前後端,包含全套搭建視頻教程,源碼已經測試上線運營,完美無錯,可以正常使用!
  • 微信小程序直播開通方法
    微信小程序直播組件是微信官方賦予小程序的直播功能,屬於微信提供的原生直播能力。微信小程序直播是功能組件,需開發後才能投入使用。商家通過小程序直播組件實現直播,最快一天即可開發完成,然後在小程序中實現直播互動與商品銷售的閉環。從接入方式來看,商家可自行開發運營小程序直播,也可以尋求服務商的幫助。
  • NIKE × 小程序詮釋運動「快」節奏
    「跑神」基普喬格、NIKE最快跑鞋和小程序直播的新一代「快」組合,用一場短時間內迅速引爆新品聲量和轉化的NEXT%解鎖之夜直播,挑戰運動帶貨「快」極限,為更多運動、服飾品牌新品首發提供了新的陣地和營銷範本
  • 「蘋果小程序」App Clips 和微信小程序區別在哪?我們做了一次上手...
    聲明:本文來自於微信公眾號 知曉程序(ID:zxcx0101),作者:何世友、彭權華,授權站長之家轉載發布。6 月 23 日,Apple Park 的觀眾席上空無一人,但此時一場特別的「科技春晚」正在上演。
  • 馬斯克又成立了「修改」大腦的新公司;小程序新增了六大功能 |...
    小程序新增六大能力,面向個人開發者開放來源:微信公開課、極客公園也許是自小程序發布以來效果實在不太好看,微信這次搬出了公眾號、朋友圈分享等「絕招」來「拯救」小程序。張小龍終於不再一味的克制,因為這次小程序真的放了個大招。昨天晚上,小程序官方發布了消息,題為——「小程序新增六大能力!
  • 騰訊位置服務+微信小程序,一文告訴你程式設計師為什麼不會坐過站!
    也正因為新增了這些實用性的功能,我們發現「乘車二維碼」微信小程序在數據表現(如日活、留存、使用時長)方面更加出色了,「騰訊位置服務」也成為我們「乘車二維碼」微信小程序內不可或缺的角色。接下來,筆者將通過公交地圖、路線規劃兩個功能點更加詳細的介紹「騰訊位置服務」中的微信小程序 JavaScript SDK、微信小程序插件。
  • 微信小程序直播組件突擊上線 商家戰「疫」再添...
    來源:每日經濟新聞2月17日,《每日經濟新聞》記者從不願具名的品牌商家方面獲悉,微信小程序已於日前開啟了「直播能力」公測。此時,距離微信在2020年微信公開課PRO上發布將上線官方直播組件的消息不過1個多月的時間。
  • 360 小程序正式開啟公測,為什麼在 PC 端做小程序是必要的?
    除了 360 安全瀏覽器,360 還將為小程序開放了整個流量矩陣,使用 360 導航、360 安全瀏覽器、360 搜索、360 安全衛士、快資訊等多個產品進行助推。在 PC 上做小程序,聽起來似乎有些「怪異」,又有些「顛覆」。懷著好奇,在大會前一天,我們特別約到了 360 集團副總裁楊炯緯與 360 集團高級總經理梁志輝,進行了一次深度對話。
  • 甲子日曆 APP/小程序 推出「抽籤」功能
    甲子日曆 APP / 小程序推出「抽籤」功能即日起,「甲子日曆」APP / 小程序 將在每天特定時段(隨機,每個人遇到的機會都不一樣),提供免費的「抽籤」功能。註:「甲子日曆」是我們基於八字、陰陽理論開發的一款智能日曆應用,可以幫你挑日子、選時間,把你重要的行程,都安排在良辰吉時。現已推出 iOS、Android 和 微信小程序 多種版本。
  • 微信小程序抽獎轉盤組件怎麼做?
    前言在各種活動中,我們經常會遇到使用轉盤抽獎,作為一名程式設計師,應該了解這種抽獎轉盤的實現原理,於是,我們今天就由示例來跟大家一起剖析微信小程序抽獎轉盤的實現。微信小程序轉盤抽獎組件的實現思路1.界面樣式實現從抽獎轉盤的圖中我們可以看出,抽獎轉盤由外圓、扇面抽獎選項、抽獎按鈕組成,其中外圓不難實現,大家在處理微信小程序頭像的時候估計都已經用過了,那就是利用border-radius:50%來將一個正方形變成圓,這是外圓實現的關鍵
  • Google 首款小程序來啦!「猜畫小歌」刷爆朋友圈~
    昨天(7.18),為了讓每個人都有機會體驗人工智慧技術驅動下的人機互動,谷歌推出了一款微信小程序「猜畫小歌」,可以理解為這是一款「你畫我猜」小遊戲,只不過另一位玩家是來自谷歌的人工智慧。上線僅僅三個小時,小編就發現,自己的微信和朋友圈被這款小程序刷屏了,到處都是玩得不亦樂乎的「靈魂畫手」。在這款名為「猜畫小歌」的小程序中,你將與人工智慧競賽,完成一場人機版「你畫我猜」。操作簡單易上手,你只需要按照小遊戲上方的提示,在 20s 規定時間內,用手指在屏幕下方的白色畫板下畫出相應的物品即可。
  • 商城小程序製作方法和4個注意點
    現在很多用戶都是用行動裝置網上購物,使用商城小程序就是很受歡迎的一種購物方式。也因此,越來越多商家開始用小程序商城來開闢線上市場,引流營銷。那麼商家如何做一個微信商城小程序呢?搭建小程序本身是很簡單的,直接在「上線了」選擇一個電商模板(或者超級雲名片-電商版)。點擊模進入小程序編輯器,在「小程序設計-通用風格」裡你可以設置小程序主題色、導航;在「頁面設計」裡你可以添加各種功能版塊(圖片banner、視頻、快捷按鈕、標題、分類組合、商品列表……);在商店欄你可以添加商品、商品分類等。
  • 商城小程序賣貨營銷面對面
    成都直播商城小程序賣貨營銷面對面線下零售蕭條,線上卻一片紅火,一批已經搭建小程序商城的商家接入直播能力,在剛過去的3·8節日檔有近千個品牌同時直播,包括零售百貨、女裝、美妝護膚、家紡、運動等多個類目,戰績優異。
  • 微信小商店和小程序的區別是什麼
    微信小商店是微信團隊中新增的一個電商功能,可以幫助店主提升銷售能力,那麼微信小商店和小程序有哪些不同之處,這裡我們來一起看下微信小商店和小程序的不同之處介紹。
  • 科普:小程序可視化是什麼,怎麼做
    什麼是微信小程序可視化開發?顧名思義,就是你製作、修改小程序所呈現的頁面效果,都是可以隨時看到的,所見即所得。這種開發方式最近很受歡迎,因為不需要你什麼技術知識,新手也能憑藉著這種小程序可視化開發工具快速搭建小程序。
  • 贊同科技AEMP:小程序一站式開發平臺
    因此在小程序飛速發展的過程中,金融業為了適應不同的業務場景,需要在各個平臺上獨立開發小程序,同時針對於總分行各自特色靈活的運營模式,難以進行統一的管理。有感於此,贊同科技針對金融行業客戶,提供一體化小程序開發解決方案,滿足其開發多端小程序能力的需求和小程序統一業務場景的訴求,從開發、發布、管理、運營等方面幫助客戶搭建平臺,實現小程序的快速開發,管理等。
  • 如何利用小程序免費製作微信投票
    投票這件事,不大也不小,在我們日常生活中經常會出現,小到競選班幹部、優秀員工,大到股東決策、總統選舉等等,而對於一些團體組織來說,他們經常需要製作投票活動,以往的做法是安裝app、關注公眾號、註冊一大堆信息才能製作,不過小編這裡要給大家說的是利用微信小程序來製作投票,無需註冊信息即可免費製作,
  • 人民網「領導留言板」西鹹新區版塊正式上線!
    本文轉自【西鹹新區融媒體中心】;人民網「領導留言板」西鹹新區版塊正式開通上線了歡迎大家通過>人民網「領導留言板」官方網站「領導留言板」APP「領導留言板」微信小程序諮詢、反映、投訴您遇到的問題為西鹹新區開發建設管理建言獻策好的建議我們一定採納