日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)小程序云教程:云開發(fā)數(shù)據(jù)綁定

今天我們來了解一下數(shù)據(jù)綁定,什么是數(shù)據(jù)綁定呢?就是把WXML 中的一些動態(tài)數(shù)據(jù)分離出來放到對應(yīng)的js文件的 Page 的 data里。

公司主營業(yè)務(wù):成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出白堿灘免費(fèi)做網(wǎng)站回饋大家。

數(shù)據(jù)綁定這個概念其實(shí)很多學(xué)過網(wǎng)頁開發(fā)的朋友也會比較困惑。大家可以不必執(zhí)著于這個深奧的概念,而是先來動手做一下了解是一個什么效果。在潛移默化里,你會get到前端里一個非常了不得的技術(shù)知識哦~

把數(shù)據(jù)分離出來

我們可以在小程序的頁面文件wxml里寫這樣一段代碼,比如我們可以寫在home.wxml里面,

張明,您已登錄,歡迎

這樣的場景我們經(jīng)常遇到,不同的人使用一款A(yù)pp或者H5的時候,頁面會根據(jù)不同的登錄人不同的用戶信息。

我們可以這樣把wxml的代碼修改成這樣:

{{username}},您已登錄,歡迎

然后再在home.js的data里面寫這樣一段代碼,最終呈現(xiàn)的結(jié)果是:

    data: {
        username:"張明"
      },

在模擬器我們看到呈現(xiàn)的結(jié)果和之前一樣,我們可以data里面的”張明”修改成任何一個人的名字,前端的頁面也會相應(yīng)有所改變,如果通過函數(shù)的方式根據(jù)不同的用戶修改username的值,這樣不同的登錄的人登錄就會顯示相應(yīng)的用戶名。

大家再回頭來回顧一下json語法,這里的username是字段名稱,也就是變量,冒號:后面的是值。在wxml文件里,只需要用雙大括號{{}}把變量名包起來,就能把data里面的變量給渲染出來。

數(shù)據(jù)類型

通過前面的案例我們了解到WXML 中的動態(tài)數(shù)據(jù)均來自對應(yīng) Page 的 data。 data 是小程序的頁面第一次渲染使用的初始數(shù)據(jù)。小程序的頁面加載時, data 將會以 JSON字符串的形式由邏輯層傳至渲染層,因此 data中的數(shù)據(jù)必須是可以轉(zhuǎn)成 JSON的類型:字符串String,數(shù)字Number,布爾值Boolean,對象Object,數(shù)組Array。

  • 字符串String,用于存儲和處理文本,可以結(jié)合Excel單元格格式里的文本格式來理解;
  • 數(shù)字Number,這個很好理解,比如233這個數(shù),它的數(shù)字格式和文本格式是有很大不同的,學(xué)Excel一定不會陌生;
  • 布爾值Boolean,就是true和false,雖然只有兩個值,但是它代表著兩種選擇,兩種不同的條件,兩種不同的結(jié)果;
  • 對象Object,結(jié)合之前所學(xué),我們再來回顧一下:對象由大括號{}分隔,在大括號{}內(nèi)部,對象的屬性以名稱和值對的形式 name : value來定義,屬性由逗號,分隔
  • 數(shù)組Array,結(jié)合之前所學(xué),我們再來回顧一下:數(shù)組由中括號[ ]來分割,有點(diǎn)類似于列表;

    數(shù)據(jù)類型在編程語言里是一個非常重要的概念,大家可以先只需要知道是啥就可以,不必強(qiáng)行理解哦。就像我們把不同的人分為男、女、深圳人、程序員等不同類型一樣,數(shù)據(jù)類型就是一種對不同類型的數(shù)據(jù)進(jìn)行了一個分類而已,只是為了區(qū)分它們才有了不同的格式規(guī)范它們。

組件屬性的渲染

通過數(shù)據(jù)綁定,我們還可以把 style、class 、id等屬性分離出來來控制組件的樣式等信息。

使用開發(fā)者工具在home.wxml里輸入以下內(nèi)容:


      

需要按照json的語法,把下面data里面的數(shù)據(jù)添加到home.js的data里面:

data: {
        id: 233,
        itemurl:"/pages/home/imgshow/imgshow",
        itemclass:"event-item",
        imagesrc: "https://hackwork.oss-cn-shanghai.aliyuncs.com/lesson/weapp/4/weapp.jpg",
        imagemode:"widthFix",
        imagewidth:"100%",
      },

然后在模擬器里查看顯示的效果,發(fā)現(xiàn)顯示的結(jié)果上和我們之前不采用數(shù)據(jù)綁定沒有什么區(qū)別,但是用數(shù)據(jù)綁定的好處是為我們以后添加大量數(shù)據(jù)以及進(jìn)行編程更新打下了基礎(chǔ)。 字符串與數(shù)字

在前面我們以前說過,數(shù)字Number與字符串String在Excel里是不同的,在小程序(也就是JavaScript)里也是不同的。我們來實(shí)戰(zhàn)了解一下,在home.wxml里輸入以下代碼:

兩個數(shù)字Number相加:{{love1+forever1}}
兩個字符串String相加:{{love2+forever2}}

然后把下面data里的數(shù)據(jù)添加到home.js里面:

  data: {
    love1:520,
    love2:"520",
    forever1:1314,
    forever2:"1314",
  }

在這里我們可以看到使用””雙引號包住的是字符串格式,而沒有使用雙引號的是數(shù)字格式。

可以看到數(shù)字格式的數(shù)字相加和四則運(yùn)算的加法是一致的,而字符串與字符串的相加是拼接。+ 加號在JavaScript里既可以扮演四則運(yùn)算符的角色,也可以進(jìn)行拼接,取決于數(shù)據(jù)的格式。

小任務(wù):數(shù)字格式的520和字符串格式的520,它們在頁面的顯示上雖然是一樣的,但是字符串格式可以拼接,而數(shù)字格式的數(shù)字,則方便以后我們進(jìn)行數(shù)字大小的比較。請問出身年份是應(yīng)該使用數(shù)字格式,還是字符串格式?身份證號碼呢?

渲染數(shù)組里的單條數(shù)據(jù)

在前面我們就已經(jīng)接觸過數(shù)組,比如pages配置項(xiàng)就是小程序里所有頁面的一個列表。數(shù)組Array是值的有序集合,每個值叫做一個元素,而每個元素在數(shù)組中有一個位置,以數(shù)字表示,稱為索引。這個索引是從0開始的非負(fù)整數(shù),也就是0,1,2,3,4,5…..

在home.wxml里輸入以下代碼:

互聯(lián)網(wǎng)快訊
{{newstitle[0]}}

然后把下面data里的數(shù)據(jù)添加到home.js里面:

  data: {
    newstitle:[
      "瑞幸咖啡:有望在三季度達(dá)到門店運(yùn)營的盈虧平衡點(diǎn)",
      "騰訊:廣告高庫存量還是會持續(xù)到下一年",
      "上汽集團(tuán)云計算數(shù)據(jù)中心落戶鄭州,總投資20億元",
      "京東:月收入超2萬元快遞小哥數(shù)量同比增長163%",
      "騰訊:《和平精英》日活躍用戶已超五千萬",
    ],
  }

我們發(fā)現(xiàn)數(shù)組的第一條數(shù)據(jù)就顯示出來了,也就是說{{array[0]}}對應(yīng)著數(shù)組array的第一項(xiàng),0就是索引的第一個位置,也就是我們可以使用數(shù)組名+中括號[ ]+索引的位置來訪問數(shù)組的某一條數(shù)據(jù)。

小任務(wù):我們已經(jīng)知道newstitle[0]顯示的是第1條新聞的標(biāo)題,那怎么顯示第5條新聞的標(biāo)題?還記得pages配置項(xiàng)的第一項(xiàng)就是小程序的初始頁面么,你現(xiàn)在知道它是怎么做到的么?

渲染對象類型的數(shù)據(jù)

對象(object)是 JavaScript 語言的核心概念,也是最重要的數(shù)據(jù)類型。對象是一個包含相關(guān)數(shù)據(jù)和方法的集合(通常由一些變量和函數(shù)組成,我們稱之為對象里面的屬性和方法)。

有的時候一個對象有多個屬性,就拿電影來說,就有電影名稱,國家,發(fā)行時間、票價、評價等等無數(shù)個屬性,我們該如何把這些呈現(xiàn)在頁面上呢?

在home.wxml文件里輸入以下代碼:


電影名:{{movie.name}}
英文名:{{movie.englishname}}
國家:{{movie.country}}
發(fā)行年份:{{movie.year}}
簡述:{{movie.desc}}

在與之對應(yīng)的home.js的data里,添加如下數(shù)據(jù):

data: {
    movie: {
      name: "肖申克的救贖",
      englishname:"The Shawshank Redemption",
      country:"美國",
      year:1994,
      img: "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp",
      desc: "有的人的羽翼是如此光輝,即使世界上最黑暗的牢獄,也無法長久地將他圍困!"
    },
  },

這樣,對象Object類型的數(shù)據(jù)就被渲染出來啦。也就是在雙大括號{{}}里,輸入變量movie+點(diǎn)+屬性名即可,這就是對象的點(diǎn)表示法。

復(fù)雜的數(shù)據(jù)嵌套

對象是可以嵌套的,也就是一個對象可以作為另外一個對象的值,除了對象里套對象,數(shù)組里也可以套對象,對象里也可以套數(shù)組。把現(xiàn)實(shí)生活中的事物轉(zhuǎn)化成錯綜復(fù)雜的數(shù)據(jù),是非常重要的數(shù)據(jù)思維。

比如上面我們只列出了豆瓣排名第1的電影,那top5前五的電影呢,它就是一個列表;每一部電影的工作人員又有導(dǎo)演、編劇、演員,而每一部電影的演員名單又是一個列表,每個演員又有復(fù)雜的屬性,比如姓名、出身年月、所獲獎項(xiàng)(列表)…真的是子子孫孫無窮盡。當(dāng)然簡單的數(shù)據(jù)我們可以寫在data里面,而如此復(fù)雜的數(shù)據(jù)就要使用到數(shù)據(jù)庫啦。

比如我們把下面data里的數(shù)據(jù)添加到home.js里面:

    movies:[
      {
        name: "肖申克的救贖",
        englishname: "The Shawshank Redemption",
        country: "美國",
        year: 1994,
        img: "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp",
        desc: "有的人的羽翼是如此光輝,即使世界上最黑暗的牢獄,也無法長久地將他圍困!",
        actor:[
          {
            name:"蒂姆·羅賓斯",
            role:"安迪·杜佛蘭"
          },
          {
            name:"摩根·弗里曼",
            role:"艾利斯·波伊德·瑞德"
          },
        ]
      },
      {
        name: "霸王別姬",
        englishname: "Farewell My Concubine",
        country: "中國",
        year: 1993,
        img: "https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2561716440.webp",
        desc: "風(fēng)華絕代",
        actor: [
          {
            name: "張國榮",
            role: "程蝶衣"
          },
          {
            name: "張豐毅",
            role: "段小樓"
          },
        ]
      },
    ],

那我們應(yīng)該如何把豆瓣電影排名第2的霸王別姬的主演之一的張國榮的名字給渲染到頁面呢? {{movies[1].actor[0].name}}表示的是電影列表里的第2部電影, {{movies[1].actor[0]}}表示的是第2部電影里的排名第一的主演, {{movies[1].actor[0].name}}則表示的是主演的名字啦。

在home.wxml里輸入以下代碼測試看一下顯示的是不是張國榮?

豆瓣電影排名第2、最重要的主演演員名:
{{movies[1].actor[0].name}}

那如何把第2部電影里的所有數(shù)據(jù)都渲染出來呢?


電影名:{{movies[1].name}}
英文名:{{movies[1].englishname}}
發(fā)行地:{{movies[1].country}}
發(fā)行年份:{{movies[1].year}}
簡述:{{movies[1].desc}}

小任務(wù):在home.wxml輸入以下代碼會是什么結(jié)果?為什么不能這樣?

以上我們只是輸出了數(shù)組里的單條數(shù)據(jù),或者對象嵌套的數(shù)據(jù)里的單條數(shù)據(jù),如果是商品列表、電影列表、新聞列表這些我們應(yīng)該如何渲染到頁面呢?后面一節(jié)我們將會介紹列表渲染和條件渲染。


文章名稱:創(chuàng)新互聯(lián)小程序云教程:云開發(fā)數(shù)據(jù)綁定
文章地址:http://www.dlmjj.cn/article/dhhdseh.html