Vue-awesome-swiper使用教程
1. vue-awesome-swiper是vue的一款輪播插件
github地址:https://github.com/surmon-china/vue-awesome-swiper
2. Vue-awesome-swiper安裝使用
NO. | 安裝使用步驟 |
---|---|
1 | 安裝指令npm install vue-awesome-swiper --save
|
2 | 在main.js全局引入vue-awesome-swiper插件(包括樣式) |
3 | 在Vue的template組件模板內(nèi)復(fù)制黏貼swiper代碼模板 |
//全局引入
import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'
Vue.use(VueAwesomeSwiper)
//swiper代碼模板
<!-- The ref attr used to find the swiper instance -->
<template>
<swiper :options="swiperOption" ref="mySwiper" @someSwiperEvent="callback">
<!-- slides -->
<swiper-slide>I'm Slide 1</swiper-slide>
<swiper-slide>I'm Slide 2</swiper-slide>
<swiper-slide>I'm Slide 3</swiper-slide>
<swiper-slide>I'm Slide 4</swiper-slide>
<swiper-slide>I'm Slide 5</swiper-slide>
<swiper-slide>I'm Slide 6</swiper-slide>
<swiper-slide>I'm Slide 7</swiper-slide>
<!-- Optional controls -->
<div class="swiper-pagination" slot="pagination"></div>
<div class="swiper-button-prev" slot="button-prev"></div>
<div class="swiper-button-next" slot="button-next"></div>
<div class="swiper-scrollbar" slot="scrollbar"></div>
</swiper>
</template>
<script>
export default {
name: 'carrousel',
data() {
return {
swiperOption: {
// some swiper options/callbacks
// 所有的參數(shù)同 swiper 官方 api 參數(shù)
// ...
}
}
},
computed: {
swiper() {
return this.$refs.mySwiper.swiper
}
},
mounted() {
// current swiper instance
// 然后你就可以使用當(dāng)前上下文內(nèi)的swiper對象去做你想做的事了
console.log('this is current swiper instance object', this.swiper)
this.swiper.slideTo(3, 1000, false)
}
}
</script>
3. Vue-awesome-swiper屬性方法
Ⅰ. 什么是Nuxt.js:
Nuxt.js 是一個基于 Vue.js 的通用應(yīng)用框架尺迂,通過對客戶端/服務(wù)端基礎(chǔ)架構(gòu)的抽象組織蹲盘,預(yù)設(shè)了利用 Vue.js 開發(fā)服務(wù)端渲染的應(yīng)用所需要的各種配置召衔。(開箱即用)
官方地址:https://zh.nuxtjs.org/guide
Ⅱ. Nuxt安裝使用
NO. | 步驟描述 |
---|---|
1.全局安裝nuxt腳手架 | cnpm i create-nuxt-app -g |
2.創(chuàng)建新項目 | create-nuxt-app my-nuxt-demo(項目名) |
3.新項目配置 | 如下 |
4.進入新項目 | cd my-nuxt-demo(項目名) |
5.運行新項目 | npm run dev |
Ⅲ. Nuxt模板目錄結(jié)構(gòu)分析
重點關(guān)注:components、layouts宣肚、pages、plugins嵌纲、nust.config.js目錄及文件
Ⅳ.Nuxt路由
?.pages目錄結(jié)構(gòu)自動生成對應(yīng)的路由配置
?路由跳轉(zhuǎn)
- 跳轉(zhuǎn)方式1.使用nuxt-link組件
注意:不能用a標(biāo)簽代替nuxt-link組件今阳,雖然最終的顯示效果一樣盾舌,但是a標(biāo)簽會刷新頁面
- 跳轉(zhuǎn)方式2.使用編程式導(dǎo)航this.$router.push(用于事件)
③動態(tài)路由
④路由參數(shù)校驗
Nuxt.js 可以讓你在動態(tài)路由對應(yīng)的頁面組件中配置一個validate
方法用于校驗動態(tài)路由參數(shù)的有效性嗡载。該函數(shù)有一個布爾類型的返回值洼滚,如果返回true則表示校驗通過,如果返回false則表示校驗未通過。
validate(data) {
cosole.log(data)
return true
}
⑤嵌套路由
NO. | 步驟描述 |
---|---|
1. | 添加一個Vue文件,作為父組件 |
2. | 添加一個與父組件同名的文件夾來存放子視圖組件 |
3. | 在父文件中,添加<nuxt-child></nuxt-child>組件刻两,用于展示匹配到的子視圖 |
父組件authors.vue的demo:
<template>
<div class="authors">
<h3>這是作者列表頁</h3>
<ul>
<li v-for="item in bookList" :key="item.id">
<!-- <nuxt-link :to="`/book/${item.id}`">{{item.name}}</nuxt-link> -->
<!-- 將傳參改為傳name -->
<nuxt-link :to="`/authors/${item.id}`">{{item.name}}</nuxt-link>
</li>
</ul>
<nuxt-child></nuxt-child>
</div>
</template>
<script>
export default {
data(){
return{
bookList:[
{name:'蕭鼎',id:1},
{name:'墨香銅臭',id:2},
{name:'番茄',id:3},
]
}
}
}
</script>
嵌套的子組件_id文件夾下的demo
<template>
<div class="authors-detail">
<!-- Nuxt.js 定義帶參數(shù)的動態(tài)路由霎奢,需要創(chuàng)建
以下劃線作為前綴的Vue文件或目錄,為了避免出錯我們只考慮目錄 -->
<!-- 底下這個id對應(yīng)左邊加了下劃線的文件夾名_id -->
這是{{$route.params.id}}號作者的詳細信息
</div>
</template>
<script>
export default {
// Nuxt.js 可以讓你在動態(tài)路由對應(yīng)的頁面組件中配置一個`validate`方法用于校驗動態(tài)路由參數(shù)的有效性悼潭。
// 該函數(shù)有一個布爾類型的返回值疏橄,如果返回true則表示校驗通過晃酒,如果返回false則表示校驗未通過。
validate(obj){//默認有個obj的參數(shù)
console.log(this);
console.log(obj.params);// { id: '誅仙' }
return /^\d+$/.test(obj.params.id)//用正則限制只能是數(shù)字
}
}
</script>
Ⅴ.布局組件
NO. | 步驟描述 |
---|---|
1. | 去layouts文件夾下面新建一個新的layout布局組件(如 a.vue),并在這個組件中添加<nuxt />組件 |
2. | 給需要用到a.vue的組件添加layout屬性,并指定需要使用的layout(如 layout:'a') |
特殊的布局組件:error布局組件(error是關(guān)鍵字,只能取這個名字)
Ⅵ.設(shè)置全局樣式
Ⅶ.ElementUI使用
NO. | 步驟描述 |
---|---|
1. | 下載(c)npm i element-ui -S(一定要在package.json里確認是否下載成功) |
2. | 在plugins文件夾下面何什,創(chuàng)建ElementUI.js文件 |
3. | 在nuxt.config.js中添加系統(tǒng)設(shè)置 |
4. | 測試UI組件是否生效 |
測試的時候不要范如下錯誤:
Ⅷ.發(fā)送請求
?.生命周期函數(shù):
在nuxt中罐栈,只有created以及beforeCreate兩個能夠在服務(wù)端正常使用
但是發(fā)異步請求不能在created生命周期函數(shù)中去發(fā)送涯捻,因為它會在前端執(zhí)行(打印一下,發(fā)送前端和服務(wù)器端都會有打印信息)
那么如何發(fā)送異步請求呢?
?.asyncData的方法:可以在服務(wù)端或路由更新之前被調(diào)用, 需要注意這個函數(shù)中不能使用this
③. axios的使用
NO. | 步驟描述 |
---|---|
1. | 下載(c)npm install axios -S(一定要在package.json里確認是否下載成功) |
2. | 在plugins文件夾下面按咒,創(chuàng)建axios.js文件并進行設(shè)置 |
3. | 在nuxt.config.js中添加系統(tǒng)設(shè)置 |
4. | 測試axios是否生效 |
Ⅸ.SEO優(yōu)化
?.全局優(yōu)化:在nuxt.config.js配置文件中修改
head: {
title: '全網(wǎng)最好看的電影在線網(wǎng)站',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: '韓劇、日劇瞳步、美劇氛堕,只有你想不到绕沈,沒有你找不到' }
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
]
},
?.局部優(yōu)化:去每個頁面直接加入head() 方法
head(){
return{
title:'豆瓣電影',
meta:[{
'name':'keywords',
'content': '電影浅蚪、經(jīng)典電影藕帜、熱映、電視劇惜傲、美劇洽故、影評、電影院盗誊、電影票时甚、排行、推薦'
}]
}
}
Ⅹ.實戰(zhàn)項目:豆瓣電影小案例
?.案例源碼:
復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機App哈踱,操作更方便哦
鏈接:https://pan.baidu.com/s/1YFdpQIGUMF28uEm8oBUfbw
提取碼:iqjb
?.獲取源碼后項目跑動
后記:解決SEO問題不一定非得用服務(wù)端渲染來處理荒适,特別是項目已經(jīng)開發(fā)完畢,突然告訴你添加個SEO優(yōu)化开镣,這時候可以考慮vue-meta-info 刀诬,官方地址:https://github.com/muwoo/vue-meta-info