微信小程序-學習筆記

1.text 文本

1⃣️顯示連續空格

<p><text space='ensp'>11</text></p>
<p><text space='emsp'>11</text></p>
<p><text space='nbsp'>111</text></p>

2⃣️文本是否可選,其他組建都無法長按選中

 <p><text selectable >11</text></p>

3⃣️是否連續空格,可解析

<p><text decode > & nbsp;& emsp; & lt;</text></p>

2.view 視圖容器

1⃣️hover-class:指令按下去的樣式類;

2⃣️hover-stop-propagation:指定是否阻止本節點的祖先節點出現點擊態;

3⃣️hover-start-time:按住後多久出現點擊態,單位毫秒;

4⃣️hover-stay-time:手指鬆開後點擊態保留時間,單位毫秒;

3.使用全局配置文件app.json

window 節點常用的配置項

//設置導航欄標題文字內容

app.json->window->navigationBarTitleText

//設置下拉loading的樣式

app.json->window->backgroundTextStyle 指定'dark'或者'light'

//設置上拉觸底的距離

app.json->window->onReachBottomDistance 設置新的數值(默認爲50px)

4.wxs 腳本

1⃣️wxs(weiXin Script) 是小程序的一套腳本語言,結合WXML,可以構建出頁面的結構。

wxs 的注意點:

沒有兼容性:不依賴於運行時的基礎庫版本,可以在所有版本的小程序中運行;
與javascript 不同:wxs 與 javascript 是不同的語言,有自己的語法,並不和javascript一致;
隔離性:wxs 的運行環境和其他 javascript 代碼是隔離的,wxs 中不能調用其他 javascript 文件中定義的函數,也不能調用小程序提供的API;
不能作爲事件回調:wxs 函數不能作爲組件的事件回調;
ios設備上比javascript 運行快:由於運行環境的差異,在ios設備上小程序內的wxs 會比javascript 代碼快2~20倍。在android 設備上二者運行效率無差異;
wxs 遵循CommonJS 模塊化規範:

module 對象:每個wxs 都是獨立的模塊,每個模塊均有一個內置的module 對象,每個模塊都有自己獨立的作用域;
module.exports:由於 wxs 擁有獨立作用域,所以在一個模塊裏面定義的變量與函數,默認爲私有的,對其他模塊不可見,通過 module.exports 屬性,可以對外共享本模塊的私有變量與函數;
require 函數:在wxs 模塊中引用其他wxs 文件模塊,可以使用 require 函數;

2⃣️wxs基礎語法

通過module.exports屬性,可以對外共享本模塊的私有變量與函數:

               
                    var foo ='hello moto';//定義私有變量 foo
                    var bar = function(d){//定義私有函數 bar
                         return d
                    }
                    module.exports ={// 通過 module.exports 向外共享私有成員
                        Foo:foo,//向外共享私有變量 foo
                        bar:bar//向外共享私有函數 bar

                    };
                    module.exports.msg='vivi';//額外向module.exports 中掛載msg 變量
使用 require 引入其它 wxs 模塊:

假設有兩個wxs 模塊,路徑分別爲 /pages/tools.wxs 和/pages/logic.wxs,如果要在 logic.wxs 中引入 tools.wxs 腳本,則示例代碼如下:

                   
                       // 使用require 倒入 tools.wxs 腳本
                        var tools =require('./tools.wxs');
                      //得到的tools對象,可以直接訪問到 tools.wxs 中向外暴露的變量和方法

3⃣️使用 require 的注意點

在wxs 模塊中引用其他的wxs 文件模塊,可以使用 require 函數:

a.只能引用 .wxs 文件模塊,且必須使用相對路徑;
b.wxs 模塊均爲單例:wxs 模塊在第一次被引用時,會自動初始化爲單例對象,多個頁面,多個地方,多次引用,使用的都是同一個wxs 模塊對象;
c.如果一個wxs 模塊在定義之後:一直沒有被引用,則該模塊不會被解析與運行;

4⃣️支持的數據類型

wxs 語言目前共有以下8種數據類型:

number 數值類型;
string 字符串類型;
boolean 布爾類型;
object 對象類型;
function 函數類型;
array 數組類型;
date 日期類型;
regexp 正則;
注意,由於和javascript是不同的語言,不一樣的語法,使用時請先查閱文檔

4.1 內嵌wxs 腳本

a. wxs 代碼可以編寫在wxml 文件中的<wxs></wxs>標籤內,就像javascript 代碼可以編寫在 html文件中的<script></script>標籤內一樣;

b. wxml 文件中的每個<wxs></wxs>標籤,必須提供一個 module 屬性,用來指定當前<wxs></wxs>標籤的模塊名。在單個wxml文件內,建議其值唯一;

                    
                        //wxml
                        <wxs module='foo'>
                        var some_msg ='hello moto';
                        module.exports = {
                            msg: some_msg
                        }
                        </wxs>
                        <view>{ {foo.msg } }</view>

4.2 外聯 wxs 腳本

a. wxs 代碼還可以編寫在以 .wxs 爲後綴名的文件內,就像javascript 代碼可以編寫在 .js 爲後綴名的文件中一樣;

b. 在微信開發者工具裏面,右鍵可以直接創建.wxs 文件,在其中直接編寫 WXS 腳本;

                    
                           // /pages/tools.wxs
                            var foo ='hello moto';//定義私有變量 foo
                            var bar = function(d){//定義私有函數 bar
                                 return d
                            }
                            module.exports ={// 通過 module.exports 向外共享私有成員
                                Foo:foo,//向外共享私有變量 foo
                                bar:bar//向外共享私有函數 bar
        
                            };
                            module.exports.msg='vivi';//額外向module.exports 中掛載msg 變量
                    
                

c. 在wxml 內引用外聯的 wxs 腳本;

                        
                               // /pages/index/index.wxml
                               <wxs src='./../tools.wxs' module='tools'/>
                               <view> { {tools.msg} } </view>
                               <view> { {tools.bar(tools.FOO)} } </view>
                        
                    

5.列表渲染 

手動指定索引和當前項的變量名。

            
                <view wx:for="{ {array} }" wx:for-item='itemName' wx:for-index='idx'>
                   索引是 { {idx} } 當前項是:{ {itemName} }
                </view>
            
  • wx:for-item:可以指定數組當前元素的變量名;
  • wx:for-index:可以指定數組當前下標的變量名;

6.下拉刷新

enablePullDownRefresh:true;
wx.startPullDownRefresh():調用觸發下拉刷新動畫,效果與用戶手動下拉刷新一致;

7.上拉加載更多

data:{
            page:1,
            msglist:[1,2,3,4,5,6,7,9,10]
        }
       //設置觸底距離
      
       onReachBottom:function(){
           //先讓頁面值自增+1
           this.setDate({
               page:this.data.page+1
           })

           const newArr =[]
           for(let i =1,i<=10,i++){
               const c = (this.data.page-1)*10+i
               newArr.push(c)
           }
           this.setData({
            msglist:[...this.data.msglist, ...newArr]
           })
       }




        <view wx-for='{ {msglist} }' wx:key="*this">{ {item} }</view>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章