關(guān)于vue文件中index.vue的使用方法
vue文件中index.vue使用
<template>
<div>
<keep-alive> //組件緩存
<home-page v-if="pageName === 'homePage'"></home-page>
</keep-alive>
<add-page v-if="pageName === 'addPage'"></add-page>
<info-page v-if="pageName === 'infoPage'"></info-page>
<edit-page v-if="pageName === 'editPage'"></edit-page>
</div>
</template>
<script> //引入頁面文件
import homePage from './home'
import addPage from './add'
import infoPage from './info'
import editPage from './edit'
export default {
data() {
return {
pageName: '',
iData: localStorage.iData ? JSON.parse(localStorage.iData) : {}
}
},
components: { //注冊頁面
homePage, addPage, infoPage, editPage
},
mounted() {
this.routerPage()
},
watch: {
$route() {
this.routerPage()
}
},
methods: {
routerPage() { //監(jiān)聽顯示哪個頁面
let name = this.$route.query.name
if (name) {
this.pageName = name
} else {
this.pageName = 'homePage'
}
},
onPageName(flag = {}, data = {}) { //更改頁面方法
this.$router.push({
name: 'contract',
query: flag
})
localStorage.iData = JSON.stringify(data)
this.iData = data
}
}
}
</script>
this.$parent.onPageName(); //默認跳轉(zhuǎn)主頁
this.$parent.onPageName({ //調(diào)用跳轉(zhuǎn)頁面方法,name為要切換的頁面
name: 'infoPage'
})
this.$parent.onPageName({ //跳轉(zhuǎn)頁面并攜帶數(shù)據(jù)
name: 'addPage'
}, {
come: 'editPage',
batchUni: this.getData.batchUni
})
vue的index.html總結(jié)
為啥要有index.html
對vue來說index.html是一個總的入口文件,vue是單頁面應(yīng)用,掛在id為app的div下然后動態(tài)渲染路由模板。
單頁面應(yīng)用
單頁面應(yīng)用是和多頁面應(yīng)用相對而言的。多頁面應(yīng)用是在每次頁面跳轉(zhuǎn)的時候,后臺服務(wù)器都重新生成一張html頁面,首屏?xí)r間快(只需要加載一次html),搜索引擎優(yōu)化效果好(html內(nèi)容都在),但是切換慢(每次頁面切換都需要發(fā)出一次http請求)。
單頁面應(yīng)用首次加載時會請求一次html,隨后的頁面渲染都依靠js動態(tài)的將當(dāng)前頁面的內(nèi)容清除掉(原理:js可以感知url的變化),然后將下一個頁面的內(nèi)容掛載到當(dāng)前頁面上(前端實現(xiàn),不是后端,無http發(fā)送時延),首屏慢,搜索引擎優(yōu)化效果差,但是切換快。
index.html實戰(zhàn)代碼匯總
手機端自適應(yīng)使用(px*2/100=rem)
!function (e) {
var t = e.document
, n = t.documentElement
, i = "orientationchange" in e ? "orientationchange" : "resize"
, a = function e() {
var t = n.getBoundingClientRect().width;
return n.style.fontSize = 5 * Math.max(Math.min(t / 750 * 20, 11.2), 8.55) + "px",
e
}();
n.setAttribute("data-dpr", e.navigator.appVersion.match(/iphone/gi) ? e.devicePixelRatio : 1),
/iP(hone|od|ad)/.test(e.navigator.userAgent) && (t.documentElement.classList.add("ios"),
parseInt(e.navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/)[1], 10) >= 8 && t.documentElement.classList.add("hairline")),
t.addEventListener && (e.addEventListener(i, a, !1),
t.addEventListener("DOMContentLoaded", a, !1))
}(window);以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用lodash中debounce(防抖函數(shù))的幾種方法實現(xiàn)
本文主要介紹了vue使用lodash中debounce(防抖函數(shù))的幾種方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
17個vue常用的數(shù)組方法總結(jié)與實例演示
這篇文章主要介紹了vue中常用的數(shù)組方法,包括:VUE數(shù)組轉(zhuǎn)換字符串,VUE數(shù)組遍歷,VUE數(shù)組過濾,VUE數(shù)組查詢,VUE數(shù)組排序等功能,需要的朋友可以參考下2022-12-12
Vue CLI4 Vue.config.js標準配置(最全注釋)
這篇文章主要介紹了Vue CLI4 Vue.config.js標準配置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
elementui?Select選擇器嵌套tree實現(xiàn)TreeSelect方式
這篇文章主要介紹了elementui?Select選擇器嵌套tree實現(xiàn)TreeSelect方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10

