亚洲视频二区I天堂网av 在线I丰满人妻AV一区二区三I088精品在线观看视频IAV在线网站免费I亚洲人成影院在线I91精品91久久久777777I131M久I日日摸日日

027-81331413

微信小程序頁面傳值、組件間通信總結

發布時間:2020-10-31 瀏覽:2738

 

小程序是一種新的開放能力,開發者可以快速地開發一個小程序。小程序可以在微信內被便

捷地獲取和傳播,同時具有出色的使用體驗。對于微信小程序,前端開發應該不陌生,目前也

是非常火,很多公司都會進行開發。對于小程序的優點我就不到這過多描述了,今天我是想來

總結下微信小程序頁面和組件傳值。

微信小程序目錄結構

1.頁面與頁面傳值-跳轉的url帶參傳值

微信小程序頁面直接傳值我們經常用到的是頁面URL跳轉傳值,跳轉到的頁面通過到生命周

onLoad里面接收。

//A頁面
Page({
 
 data:{
 
 },
 linkTo:function(){//頁面事件綁定方法
 
 let data = 'hello world';
 wx.navigateTo({
 url: '/pages/my/index?name=' + data,
 })
 
 }
 })
//B頁面
 Page({
 
 data:{
 name:' '
 },
 onLoad:function(option){//接收數據
 
 this.setData({
 name: option.name
 })
 }
 })
如果頁面有多個值要傳,直接用&符合鏈接起來就可以了。
比如'/pages/my/index?name=' + data1+'&number='+data2;

2.頁面與頁面傳值-全局globalData傳值

//App.js
App({
 onLaunch (options) {
 // Do something initial when launch.
 },
 onShow (options) {
 // Do something when show.
 },
 onHide () {
 // Do something when hide.
 },
 onError (msg) {
 console.log(msg)
 },
 globalData: {
 
 name:'hello world'
 
 }
})
//A頁面
const app = getApp();//獲取全局對象
Page({
 
 data:{
 
 },
 onLoad:function(){
 let name = app.globalData.name;
 console.log(name);//hello world
 }
 })

全局數據的拿去是通過拿去globalData對象,再到其他頁面獲取,當然你也可以

修改全局對象里面數據其他頁面從新去獲取。

//A頁面
const app = getApp();//獲取全局對象
Page({
 
 data:{
 
 },
 onLoad:function(){
 app.globalData.name='微信小程序'; //修改全局數據
 
 }
 })
//B頁面
const app = getApp();//獲取全局對象
Page({
 
 data:{
 
 },
 onLoad:function(){
 let name = app.globalData.name;
 console.log(name);//微信小程序
 
 }
 })

2.頁面與頁面傳值-頁面數據緩存wx.setStorageSync(KEY,DATA)

//A頁面
Page({
 
 data:{
 
 },
 onLoad:function(){
 wx.setStorage({
 key:"name",
 data:"hello world"
 })
 
 
 }
 })
 //B頁面
 
 Page({
 
 data:{
 
 },
 onLoad:function(){
 var value = wx.getStorageSync('name');
 
 console.log(value);// hello world
 }
 })
 此處緩存數據要用同步wx.setStorageSync(),因為異步有可能數據或者有可能會獲取不到

下面我們來說說 微信小程序組件之前傳值

組件間通信

組件間的基本通信方式有以下幾種。

  • WXML 數據綁定:用于父組件向子組件的指定屬性設置數據,僅能設置 JSON 兼容數據

  • (自基礎庫版本 2.0.9 開始,還可以在數據中包含函數)。具體在 組件模板和樣式 章節中介紹。

  • 事件:用于子組件向父組件傳遞數據,可以傳遞任意數據。

  • 如果以上兩種方式不足以滿足需要,父組件還可以通過 this.selectComponent 方法獲取子組件實例對象,這樣就可以直接訪問組件的任意數據和方法。

說到組件,這里我們先了解組件的使用,組件的js、json文件和頁面不一樣。

 Component構造器

Component({
 behaviors: [],
 properties: {
 myProperty: { // 屬性名
 type: String,
 value: ''
 },
 myProperty2: String // 簡化的定義方式
 },
 
 data: {}, // 私有數據,可用于模板渲染
 lifetimes: {
 // 生命周期函數,可以為函數,或一個在methods段中定義的方法名
 attached: function () { },
 moved: function () { },
 detached: function () { },
 },
 // 生命周期函數,可以為函數,或一個在methods段中定義的方法名
 attached: function () { }, // 此處attached的聲明會被lifetimes字段中的聲明覆蓋
 ready: function() { },
 pageLifetimes: {
 // 組件所在頁面的生命周期函數
 show: function () { },
 hide: function () { },
 resize: function () { },
 },
 methods: {
 onMyButtonTap: function(){
 this.setData({
 // 更新屬性和數據的方法與更新頁面數據的方法類似
 })
 },
 // 內部方法建議以下劃線開頭
 _myPrivateMethod: function(){
 // 這里將 data.A[0].B 設為 'myPrivateData'
 this.setData({
 'A[0].B': 'myPrivateData'
 })
 },
 _propertyChange: function(newVal, oldVal) {
 }
 }
})

使用 Component 構造器構造頁面

{
 "component": true,//這里是它把定義成組件,要不然引入到頁面會報錯
}

引入組件

//A頁面 json 

{
 "usingComponents": {
 "myComponents": "../../components/myComponents/index",//引入組件
 },
}

//A頁面 WXML

<myComponent name="hello world"></myComponent>

//myComponent接收數據

Component({
 properties: {
 name:{
 value: "",
 type: String //此處設置數據類型 這樣 組件就能接收到數據
 }
 },
 methods: {
 
 }
 })

組件間通信與事件

監聽事件

事件系統是組件間通信的主要方式之一。自定義組件可以觸發任意的事件,引用組件的頁面可以監聽這些事件。監聽自定義組件事件的方法與監聽基礎組件事件的方法完全一致:

<!-- 當自定義組件觸發“myevent”事件時,調用“onMyEvent”方法 -->

<myComponent bindmyevent="onMyEvent"></myComponent>

<!-- 或者可以寫成 -->
<myComponent bind:myevent="onMyEvent"></myComponent>

Page({
 onMyEvent: function(e){
 e.detail // 自定義組件觸發事件時提供的detail對象
 }
})

觸發事件

自定義組件觸發事件時,需要使用 triggerEvent 方法,指定事件名、detail對象和事件選項

<!-- 在自定義myComponent組件中 -->
<button bindtap="onTap">點擊這個按鈕將觸發“myevent”事件</button>

Component({
 properties: {},
 methods: {
 onTap: function(){
 var myEventDetail = {} // detail對象,提供給事件監聽函數
 var myEventOption = {} // 觸發事件的選項
 this.triggerEvent('myevent', myEventDetail, myEventOption)
 }
 }
})


主站蜘蛛池模板: 亚洲天天摸日日摸天天欢 | 日本韩国精品一区二区在线观看 | 黄色日视频 | 日本精品视频在线观看 | 色狠狠婷婷 | 亚洲午夜精品一区二区三区电影院 | 国产一区二区精 | 色婷婷欧美 | 丝袜制服综合网 | 一区二区三区四区在线 | 99久久精品久久久久久动态片 | 国产精品久久中文字幕 | 成人久久18免费网站图片 | 丁香九月婷婷综合 | 久久久免费精品国产一区二区 | 91九色网站 | 婷婷免费视频 | 伊人中文在线 | www.亚洲视频.com | 久久视频免费在线观看 | 亚洲国产精品久久 | 国内精品视频一区二区三区八戒 | 亚洲成人黄色在线 | 中文在线√天堂 | 成人cosplay福利网站 | 天堂视频中文在线 | 久久久久久久久影视 | 996久久国产精品线观看 | 五月婷婷视频在线 | 国产成人a亚洲精品 | 久久综合久久综合这里只有精品 | 午夜视频久久久 | 久久你懂得 | 国产在线2020 | 国产毛片久久 | 国产午夜av | 一级欧美黄| 97人人精品| 成人久久 | 国产又粗又长又硬免费视频 | 狠狠的操你 | 人人爽人人舔 | 在线国产黄色 | 久久深爱网 | 国产精品久久久久久久久久免费 | 亚洲国产片 | 安徽妇搡bbbb搡bbbb | 亚洲国产精品一区二区久久,亚洲午夜 | 亚洲欧美国产日韩在线观看 | 夜夜操综合网 | 欧美国产视频在线 | 国产欧美精品xxxx另类 | 免费日韩一区二区三区 | 中文字幕av免费在线观看 | 色网站在线免费 | 免费成人结看片 | 草久视频在线观看 | 欧美精品久久久久久久亚洲调教 | 国产超碰在线 | 久青草视频在线观看 | 天天射天天操天天 | 欧美人体xx | 成人午夜电影网站 | 在线三级av | 久久久亚洲成人 | 免费观看xxxx9999片 | 超碰在线观看99 | 91入口在线观看 | 午夜精品一区二区三区在线视频 | 五月激情婷婷丁香 | 91久久一区二区 | 成人午夜电影在线播放 | a天堂免费| 色婷久久| 精品一区二区免费视频 | 国产精品久久久久久久久久久久午夜 | 欧美一区二区精美视频 | 五月天激情综合 | 午夜精品一二区 | 免费性网站 | 欧美整片sss| 狠狠干综合网 | 伊人官网| 成人网444ppp | 免费的国产精品 | av免费看网站 | 99re久久资源最新地址 | 天天操天天射天天添 | 午夜资源站 | 国产成人精品一区二区三区在线 | 日韩高清网站 | zzijzzij亚洲日本少妇熟睡 | 国产剧情一区二区 | 综合久久精品 | 成人sm另类专区 | 999久久久欧美日韩黑人 | 日韩影视大全 | 男女拍拍免费视频 | 精品国产综合区久久久久久 |