Vue-preview是一個非常好用的移動端圖片預覽的組件,簡單易用是它的一大特點,支持滑動換圖,支持手勢縮放,顯示當前時第幾張和總共多少張。
vue-preview1.1.3版本跟之前有了一點變化,現把具體用法記錄一下。
1.安裝
npm i vue-preview -S
2.在main.js文件中導入該組件,並掛載到Vue身上
import VuePreview from 'vue-preview';
Vue.use(VuePreview);
3.在自己的組件中使用它
<template> <div class="thumbs"> <vue-preview :slides="thumbsList" class="imgPrev"></vue-preview> </div> </template> <script> export default { data() { return { thumbsList: [], }; }, methods: { getThumbsList(){ this.$ajax({ method: "get", url: "/thumbs/" , }).then(response => { var data = response.data if (data.Status == 0) { data.Data.forEach(item => { item.w = 600; //設置以大圖瀏覽時的寬度 item.h = 400; //設置以大圖瀏覽時的高度 item.src = item.img_url; //大圖 item.msrc = item.img_url; //小圖 }); this.thumbsList = data.Data } else { Toast('獲取圖片信息失敗!'); } }); }, }, }; </script>
4.運行效果如下圖
(1)小圖,這個可以根據自己的需要來寫下樣式
(2)大圖,這個是點擊上面的小圖后,展示的大圖。
這里需要說明一下,vue-preview規定,用來綁定的數據源必須是一個數組,數組里的每一項都要是個js對象,該js對象應該形如 {w: 600, h: 500, src: xxxx, msrc: xxxxxx}
其中,w是預覽時的大圖的圖片寬度,h屬性是預覽時的大圖的圖片高度。src是預覽時大圖的url,msrc屬性是小圖的url。
這幾個屬性是vue-preview規定死的,必須用這幾個屬性。
我這個例子里,服務器發過來的數據,存儲圖片url的屬性是.img_url,跟vue-preview要求的不一樣,所以不能直接作為數據源來渲染頁面,因此,我們拿到服務端數據后,通過forEach語句,給data重新添加了2個屬性,一個是src,一個是msrc。