小程序基礎 (三)

5. 使用 slot

  • 使用單個slot
// 頁面
<Test><view>自定義內容</view>
</Test>// 組件
<view><view>前面的內容</view><slot></slot><view>后面的內容</view>
</view>
  • 使用多個slot - 具名
// 頁面
<Test><view slot='n1'>自定義內容1</view><view slot='n2'>自定義內容2</view>
</Test>// 組件
<view><slot name='n1'></slot><slot name='n2'></slot>
</view>
  • 想要使用多個slot ,一定要添加這個配置
Component({// slot 配置options: {multipleSlots: true},.....
}
vue  => 頁面組件   獲取數據  ajax  => 公共組件   復用的ui模塊小程序 => 頁面   獲取數據  ajax   (很多鉤子好好學習)   ★=> 組件    復用的ui模塊  

6. 定義段與示例方法

Component構造器可用于定義組件,調用Component構造器時可以指定組件的屬性、數據、方法等。

定義段類型是否必填描述
properties(★)Object Map組件的對外屬性,是屬性名到屬性設置的映射表,參見下文
data(★)Object組件的內部數據,和 properties 一同用于組件的模板渲染
observers(★)Object組件數據字段監聽器,用于監聽 properties 和 data 的變化,類似vue里面的 watch
methods(★)Object組件的方法,包括事件響應函數和任意的自定義方法,關于事件響應函數的使用,參見 組件事件
createdFunction組件生命周期函數,在組件實例剛剛被創建時執行,注意此時不能調用 setData ,參見 組件生命周期
attached(★)Function組件生命周期函數,在組件實例進入頁面節點樹時執行,參見 組件生命周期
readyFunction組件生命周期函數,在組件布局完成后執行,參見 組件生命周期
movedFunction組件生命周期函數,在組件實例被移動到節點樹另一個位置時執行,參見 組件生命周期
detachedFunction組件生命周期函數,在組件實例被從頁面節點樹移除時執行,參見 組件生命周期
// observers 監聽
observers :{name(newVal) {console.log('新值', newVal)},obj(newVal) {console.log('新值obj', newVal)},'obj.num'(newVal) {console.log('新值obj的num', newVal)}},const { obj } = this.dataobj.num = 100this.setData({name :'大馬哥',obj,})   

7. 組件通信

  • 父傳子 : 父組件通過屬性傳遞給子組件數據
  • 子傳父 : 子組件通過事件傳遞給父組件數據

7.1 父傳子

// 父
// 第一步 :父傳子
<Test msg='父的數據'></Test>// 子
// 第二步 : 聲明properties: {msg : String,msg: {type: String,value: ''}},// 第三步 : 使用
// 使用1 : 讀取顯示
<view> 父傳子 : {{ msg }} </view>
// 使用2 : 打印attached() {console.log(123, this.properties.msg)}

7.2 子傳父

// 父
// 第一步 : 父準備好一個方法myTap(e) {console.log('父的方法:', e.detail)}
// 第二步 : 通過自定義事件傳遞給子組件
<Test bindmytap='myTap'></Test>// 子methods: {fn() {// 第三步 : 子組件觸發this.triggerEvent('mytap', '子的數據')}},

7.3 命名規則

  • 使用組件 使用中劃線的方法
// 引入
"usingComponents": {"nav-header" : "/components/NavHeader/NavHeader"
}
// 使用1
<nav-header></nav-header>
// 使用2
<my-component></my-component>
  • 屬性的方式也是要中劃線的方法
<nav-header  prop-a='aa' prop-b='bb'></nav-header>
<my-component my-class='cls'></my-component>

小程序生命周期

1. 應用生命周期

  • 應用生命周期鏈接
屬性類型默認值必填說明
onLaunchfunction監聽小程序初始化。
onShowfunction監聽小程序啟動或切前臺。
onHidefunction監聽小程序切后臺。
onErrorfunction錯誤監聽函數。
onPageNotFoundfunction頁面不存在監聽函數。
App({// 1. 應用第一次啟動的時候會觸發onLaunch() {// 在應用第一次啟動的時候 獲取用戶的個人信息console.log('onLaunch')},// 2. 應用 被用戶看到onShow() {// 對應用的數據或者頁面效果 重置console.log('onShow')},// 3. 應用被隱藏onHide() {// 暫停或者清除定時器console.log('onHide')},// 4. 應用的代碼發生了報錯的時候 就會觸發onError(err) {// 在應用發生代碼報錯的時候  收集用戶的錯誤信息 通過異步請求 將錯誤的信息發送后臺},// 5. 應用找不到就會觸發onPageNotFound(err) {// 編譯模式下演示// 如果頁面不存在了, 通過js的方法來重新跳轉頁面// 1. pages/two/two在pages最前面// 2. 添加編譯模式// 3. 把這個路徑刪掉console.log('找不到頁面',err)}
})

2. 頁面生命周期

  • 頁面生命周期鏈接
屬性類型說明
dataObject頁面的初始數據
onLoadfunction生命周期回調—監聽頁面加載
onShowfunction生命周期回調—監聽頁面顯示
onReadyfunction生命周期回調—監聽頁面初次渲染完成
onHidefunction生命周期回調—監聽頁面隱藏
onUnloadfunction生命周期回調—監聽頁面卸載
onPullDownRefreshfunction監聽用戶下拉動作
onReachBottomfunction頁面上拉觸底事件的處理函數
onShareAppMessagefunction用戶點擊右上角轉發
onPageScrollfunction頁面滾動觸發事件的處理函數
onResizefunction頁面尺寸改變時觸發,詳見 響應顯示區域變化
onTabItemTapfunction當前是 tab 頁時,點擊 tab 時觸發
Page({/*** 生命周期函數--頁面加載的時候觸發*/onLoad: function(options) {// 發送網絡請求},/*** 生命周期函數--頁面顯示的時候觸發*/onShow: function() {},/*** 生命周期函數--頁面初次渲染完成的時候觸發*/onReady: function() {// 渲染完成},/*** 生命周期函數--頁面隱藏的時候觸發*/onHide: function() {},/*** 生命周期函數--頁面卸載的時候觸發*/onUnload: function() {wx.redirectTo({url: '/pages/one/one'})},/*** 頁面相關事件處理函數--監聽用戶下拉動作* 配合 配置 :  "enablePullDownRefresh": true*/onPullDownRefresh: function() {},/*** 頁面上拉觸底事件的處理函數*/onReachBottom: function() {},/*** 用戶點擊右上角分享*/onShareAppMessage: function() {},// 滾動頁面onPageScroll(e) {console.log(e.scrollTop)},/***  監聽尺寸變化*/onResize() {console.log('尺寸變化了')// 頁面配置 "pageOrientation" :"auto"},/*** 當前是 tab 頁時,點擊 tab 時觸發*/onTabItemTap(res) {// 每個tab對應的頁面都要點擊}
})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247928.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247928.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247928.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【PyQt5】QT designer + eclipse 集成開發

【寫在前面的話】 考慮將pyqt5的界面開發qt designer 集成在eclipse中&#xff0c;并且&#xff0c;不利用cmd命令行進行轉換。 【工具】 1、pyqt5 2、qt designer 3、eclipse pydy 【步驟】 1、首先配置Qt designer。 菜單 run-->external Tools-->External tools confi…

iOS UIlabel文字排版(改變字間距行間距)分類

在iOS開發中經常會用到UIlabel來展示一些文字性的內容&#xff0c;但是默認的文字排版會覺得有些擠&#xff0c;為了更美觀也更易于閱讀我們可以通過某些方法將UIlabel的行間距和字間距按照需要調節。 比如一個Label的默認間距效果是這樣&#xff1a; 然后用一個封裝起來的Cat…

MySQL查詢之聚合查詢

為了快速得到統計數據&#xff0c;提供了5個聚合函數&#xff1a; count(*)表示計算總行數&#xff0c;括號中寫星與列名&#xff0c;結果是相同的 查詢學生總數 select count(*) from students; max(列)表示求此列的最大值 查詢女生的編號最大值 select max(id) from students…

React基礎學習(第一天)

React 概述 : React 是一個用于 構建用戶界面 的 JavaScript 庫因為框架是有一整套解決方案的&#xff0c;React就是純粹寫UI組件的 沒有什么異步處理機制、模塊化、表單驗證這些。React和react-router, react-redux結合起來才叫框架&#xff0c;而React本身只是充當一個前端…

iOS 富文本風格NSMutableParagraphStyle、定制UITextView插入圖片和定制復制

問題一 開發過程中&#xff0c;經常會遇到動態計算行高的問題&#xff0c; - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullableNSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingC…

day24 01 初識繼承

day24 01 初識繼承 面向對象的三大特性&#xff1a;繼承&#xff0c;多態&#xff0c;封裝 一、繼承的概念 繼承&#xff1a;是一種創建新類的方式&#xff0c;新建的類可以繼承一個或者多個父類&#xff0c;父類又可稱基類或超類&#xff0c;新建的類稱為派生類或者子類 class…

React基礎學習(第二天)

虛擬DOM JSX 涉及到 虛擬DOM ,簡單聊一下 定時器渲染問題 // 方法 function render() {//2. 創建react對象let el (<div><h3>時間更新</h3><p>{ new Date().toLocaleTimeString()}</p></div>)//3. 渲染ReactDOM.render(el, document.g…

iOS 去除字符串中的空格或多余空格(適合英文單詞)

NSString -stringByTrimmingCharactersInSet: 是個你需要牢牢記住的方法。它經常會傳入 NSCharacterSet whitespaceCharacterSet 或 whitespaceAndNewlineCharacterSet 來刪除輸入字符串的頭尾的空白符號。 需要重點注意的是&#xff0c;這個方法 僅僅 去除了 開頭 和 結尾 的…

華為交換機在Telnet登錄下自動顯示接口信息

因為用console連接交換機&#xff0c;默認是自動顯示接口信息的&#xff0c;比如down掉一個接口后&#xff0c;會自動彈出接口被down掉的信息&#xff0c;但是在telnet連接下&#xff0c;默認是不顯示這些信息的&#xff0c;需要開啟后才可顯示。 1、首先開啟info-center(默認是…

React基礎學習(第三天)

條件渲染 1. if / else render () {if (this.state.isLoading) { // 正在加載中return <h1>Loading...</h1>}return <div>這就是我們想要的內容</div>} // 鉤子函數 五秒鐘之后 修改狀態值componentDidMount () { setTimeout(() > {this.setState(…

componentsJoinedByString 和 componentsSeparatedByString 的方法的區別

將string字符串轉換為array數組 NSArray *array [Str componentsSeparatedByString:","]; &#xff1d;&#xff1d;反向方法 將array數組轉換為string字符串 NSString *tempString [mutableArray componentsJoinedByString:","];--,是分隔符 可不加分隔…

java中的各種數據類型在內存中存儲的方式

轉載別人的附上鏈接&#xff1a;https://blog.csdn.net/zj15527620802/article/details/80622314 1.java是如何管理內存的 java的內存管理就是對象的分配和釋放問題。&#xff08;其中包括兩部分&#xff09; 分配&#xff1a;內存的分配是由程序完成的&#xff0c;程序員需要通…

vscode的 jsonp 配置文件

{ // 工具-字體大小 “editor.fontSize”: 15, // 工具-tab縮進 “editor.tabSize”: 2, // 工具-在視區寬度換行 “editor.wordWrap”: “on”, // 工具-縮放 “window.zoomLevel”: 1, // 工具-編寫tab識別語言格式 “emmet.includeLanguages”: { “vue-html”: “html”, “…

NSString拼接字符串和NSPredicate詳解

NSString* string; // 結果字符串 02 NSString* string1, string2; //已存在的字符串&#xff0c;需要將string1和string2連接起來 03 04 //方法1. 05 string [[NSString alloc]initWithFormat:"%,%", string1, string2 ]; 06 07 //方法2. 08 string [string1 …

線程模塊

信號量 from threading import Semaphore,Thread import timedef func(a,b):time.sleep(1)sem.acquire()print(ab)sem.release()sem Semaphore(4) for i in range(10):t Thread(targetfunc,args(i,i5))t.start() 信號量事件 # 事件被創建的時候&#xff0c;默認為False狀態 #…

React中級學習(第一天)

Props深入 children 作用 : 獲取組件標簽的 子節點獲取方式 : this.props.children <App>此處的內容&#xff0c;就是組件的 children&#xff0c;將來通過組件的 props.children 就可以獲取到這些子節點了 </App>props 校驗 作用&#xff1a;規定組件props的類…

iOS 正則表達式判斷純數字以及匹配11位手機號碼

1用正則表達式 //是否是純數字(BOOL)isNumText:(NSString *)str{NSString * regex "(/^[0-9]*$/)";NSPredicate * pred [NSPredicate predicateWithFormat:"SELF MATCHES %", regex];BOOL isMatch [pred evaluateWithObject:st…

Elasticsearch集成ik分詞器

1、插件地址https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.0.0/elasticsearch-analysis-ik-7.0.0.zip 2、找到對應版本的插件通過 http://192.168.1.8:9200查看ES的版本&#xff0c;找到對應的IK分詞插件 下載與之對應的版本https://github.com/me…

React中級學習(第二天)

JSX 語法的轉化過程 (了解) 演示 : babel中文網試一試 let h1 JSX 僅僅是createElement() 方法的語法糖 (簡化語法)JSX 語法 被 babel/preset-react 插件編譯為 createElement() 方法React 元素&#xff1a;是一個對象&#xff0c;用來描述你希望在屏幕上看到的內容React 元素…

【】MTCNN基于NCNN的測試過程

前言 操作過程 NCNN: https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux-x86; vector初始化&#xff1a;int num[4] { 1, 4, 3, 2 }; int numLength sizeof(num) / sizeof(num[0]); vector<int> nums(num, num numLength); //使用數組初始化向量 Q&…