~~~
// pages/move/moremove/moremove.js
import utils from "../../../utils/utils";
var http = utils.http;
var star = utils.star;
const app = getApp();
const douban = app.globalData.doubanUrl;
Page({
/**
* 頁面的初始數據
*/
data: {
start: 0,
// 定義movies的數據是否為空
isEmpty: true,
huan: false
},
/**
* 生命周期函數--監聽頁面加載
*/
onLoad: function (options) {
wx.showLoading({
title: '正在加載...',
});
// console.log(options);
var title = options.title;
var type = options.type;
var url = douban + type;
var huan = wx.getStorageSync(type).huan;
// 沒有數據 緩存為空 類型不一致
if (this.data.isEmpty == true && huan == false || huan == undefined) {
//
http(url, this.handleData);
} else {
// 獲取緩存 設置緩存
var movies = wx.getStorageSync(type).movies;
var title = wx.getStorageSync(type).title;
this.setData({
movies,
title
})
wx.hideLoading();
}
/* 設置標題 */
wx.setNavigationBarTitle({
title
});
this.setData({
type,
})
},
handleData(res) {
var title = res.data.title;
var subjects = res.data.subjects;
var moviess = [];
var type = this.data.type
subjects.forEach(ele => {
var average = ele.rating.average;
var stars = star(ele.rating.stars);
var title = ele.title;
var imgUrl = ele.images.small;
var id = ele.id;
var temp = {
average,
stars,
title,
imgUrl,
id
};
// console.log(temp)
moviess.push(temp);
});
// isEmpty定義movies是否為空
if (this.data.isEmpty) {
this.setData({
movies: moviess,
title,
isEmpty: false,
huan: true
});
// 第一次加載了數據將數據設置在緩存
var huan = this.data.huan;
var movies = this.data.movies;
var title = this.data.title;
wx.setStorageSync(type, { movies, title, huan });
} else {
this.setData({
movies: this.data.movies.concat(moviess)
})
var huan = this.data.huan;
var movies = this.data.movies;
var title = this.data.title;
wx.setStorageSync(type, { movies, title, huan });
}
wx.hideLoading();
},
onReachBottom: function () {
var type = this.data.type;
this.data.start += 20;
var start = this.data.start;
var url = `${douban}${type}?start=${start}&count=20`;
console.log(url)
http(url, this.handleData);
//下拉觸發加載
wx.showLoading({
title: "加載數據"
});
},
moveDetails(res) {
// console.log(res)
var id = res.currentTarget.dataset.id;
var title = res.currentTarget.dataset.title;
// console.log(title)
wx.navigateTo({
url: '/pages/move/movedetails/movedetails?id=' + id + "&title=" + title,
})
}
})
~~~
- 前期準備
- 軟件安裝配置
- 語法 以及 功能 的實現
- 小程序中的 輪播
- 翻轉輪播
- 實現 跳轉 頁面
- 詳談 跳轉頁面
- for 循環 渲染 頁面(重點)
- 點擊 改變 元素內容
- 功能 封裝(創建、使用 模板)(重點)
- js模塊化(重點)
- if-else實現 三目運算
- 底部導航欄tabBar 實現
- 小程序中的 函數調用 方法
- 小程序中的 block 包裹元素
- 小程序中的 hover事件
- import 標簽(重點)
- 其他
- 在本地模擬接口取數據
- 點擊跳轉 并將該元素的id一起傳遞給跳轉的頁面
- 點擊詳情頁顯示
- 點擊事件(bindtap/catchtap)
- 圖片的mode屬性
- 跳轉頁面時實現頂部顯示頁面標題
- hello world
- 將豆瓣服務器接口設置在本地
- 組件
- 地圖
- 下拉刷新
- 數據加載 loading...
- 動態設置導航(title設置)
- 實現js代碼的模塊化
- 傳參
- 組件中的生命周期函數
- 實戰
- 發送http請求
- 可用的豆瓣接口
- 處理豆瓣列表頁的數據
- 從接口上取數據渲染到頁面上1
- 從接口上取數據渲染頁面實現瀑布流2
- 瀑布流
- 音樂播放
- 文章詳情頁
- 音樂播放組件
- 音樂播放 最終版
- 電影(封裝取數據渲染)
- 分享與收藏
- 搜索框
- 將電影列表數據放緩存
- 零碎知識點
- 談組件
- 請求封裝 (重點)
- 實現簡單需求的請求失敗的封裝
- 使用class實現顯示各種錯誤信息
- 再次封裝帶class的請求實現改變里面給的url
- 使用promise 封裝http
- promise
- generator
- 01.介紹
- 02. 基本
- 03. 實例
- 04.yield
- asyns
- 01. 介紹
- 02. 使用
- 03. 取豆瓣
- 子組件(模板文件)接收父組件傳來的參數并改變其值
- 模塊化
- 在模板中提取相同的部分behavior
- 字符串與數組之間的轉換
- 子組件向父組件傳參
- 談 triggerEvent
- 整體展示
- 父組件向子組件傳wxml (在兩個組件比較相似的情況 定義卡 槽傳 wxml)
- 傳css (在父組件中定義子組件的樣式)
- 使用wxs給wxml傳js
- 點贊
- 小程序中的正則
- 組件中實現下拉刷新
- 用戶授權
- 組件點擊圖片獲取信息
- 說明
- 小程序上下滑動