国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

交友網(wǎng)站開(kāi)發(fā)的意義網(wǎng)站推廣的策略

交友網(wǎng)站開(kāi)發(fā)的意義,網(wǎng)站推廣的策略,??诖k營(yíng)業(yè)執(zhí)照的正規(guī)公司,手機(jī)發(fā)布WordPress為什么需要封裝自定義導(dǎo)航 首先如果開(kāi)發(fā)的是微信小程序,那么在安卓環(huán)境下導(dǎo)航欄標(biāo)題是默認(rèn)靠左對(duì)齊的(雖然你在微信開(kāi)發(fā)者工具上看到的依舊是居中展示),而在ios環(huán)境則是居中展示的。很多時(shí)候我們需要對(duì)整個(gè)項(xiàng)目有一個(gè)主題色或者公…

為什么需要封裝自定義導(dǎo)航

  1. 首先如果開(kāi)發(fā)的是微信小程序,那么在安卓環(huán)境下導(dǎo)航欄標(biāo)題是默認(rèn)靠左對(duì)齊的(雖然你在微信開(kāi)發(fā)者工具上看到的依舊是居中展示),而在ios環(huán)境則是居中展示的。
  2. 很多時(shí)候我們需要對(duì)整個(gè)項(xiàng)目有一個(gè)主題色或者公共的樣式配置,封裝一個(gè)公共的自定義導(dǎo)航欄更易于實(shí)現(xiàn)與管理。
  3. 系統(tǒng)導(dǎo)航欄高度根據(jù)機(jī)型會(huì)發(fā)生變化,大部分是44px,但是有時(shí)候也會(huì)是40px等高度,如果你需要針對(duì)導(dǎo)航欄和狀態(tài)欄高度對(duì)頁(yè)面做一些定制需求那會(huì)顯得比較困難。(網(wǎng)上有一些根據(jù)膠囊按鈕獲取導(dǎo)航欄高度的方法實(shí)測(cè)后發(fā)現(xiàn)并不精準(zhǔn)。)

當(dāng)然原生導(dǎo)航也并不是一無(wú)是處的。原生導(dǎo)航的體驗(yàn)更好,渲染新頁(yè)面時(shí),原生導(dǎo)航欄的渲染無(wú)需等待新頁(yè)面dom加載,可以在新頁(yè)面進(jìn)入動(dòng)畫(huà)開(kāi)始時(shí)就渲染。原生導(dǎo)航還可以避免滾動(dòng)條通頂,并方便的控制原生下拉刷新。

封裝思路

這里我們借助uniapp官方提供的uni-nav-bar進(jìn)行封裝。(vue3 + ts + setup)

  1. 首先,我們希望可以自動(dòng)獲取每個(gè)頁(yè)面的標(biāo)題,并不是每次使用自定義組件再去設(shè)置,我們置頂page.json里面包含了我們所有的頁(yè)面的標(biāo)題,所以我們直接導(dǎo)入該文件,使用currentPage獲取當(dāng)前頁(yè)面的路由,然后匹配page.json文件里面的page或者subPackages路由,需要注意的是subPackages里面的路由需要自己收到拼裝。
    const { title, ...$attrs } = useAttrs()
    const defaultTitle = '我是默認(rèn)標(biāo)題'
    // 通過(guò)page.json文件里面的pages與subPackages數(shù)組自動(dòng)獲取標(biāo)題欄
    const getCurrentPageTitle = () => {// 有傳入的標(biāo)題直接使用傳入的標(biāo)題if (title) {return title}const { route } = currentPage()const page = pagesjson.pages.find((item) => item.path === route)if (page) {return page.style?.navigationBarTitleText || defaultTitle}for (const subPackage of pagesjson.subPackages) {const subPage = subPackage.pages?.find((item) => route === `${subPackage.root}/${item.path}`)if (subPage) {return subPage.style?.navigationBarTitleText || defaultTitle}}
    }
    
  2. 然后我們使用getCurrentInstance和``createSelectorQuery定義一個(gè)方法返回自定義導(dǎo)航欄的高度,便于我們需要的時(shí)候使用。
    const pageInstace = getCurrentInstance()
    const emits = defineEmits(['getHeight'])
    onMounted(() => {const query = uni.createSelectorQuery().in(pageInstace?.proxy)query.select('.uniNavBar').boundingClientRect((data: any) => {emits('getHeight', data.height + 'px')}).exec()
    })
    
  3. 最后我們還需使用$attrs對(duì)組件的屬性方法進(jìn)行穿透,這在我們對(duì)組件進(jìn)行二次封裝的時(shí)候應(yīng)該都是必須要做的操作。

完整代碼

<template><uni-nav-barclass="uniNavBar"v-bind="$attrs":border="border":statusBar="statusBar":fixed="fixed":leftIcon="leftIcon":title="getCurrentPageTitle()"@clickLeft="clickLeft"></uni-nav-bar>
</template><script lang="ts" setup>
import { onMounted, getCurrentInstance } from 'vue'
import { useAttrs } from 'vue'
import pagesjson from '@/pages.json'
import { currentPage } from '@/utils/tools'interface Props {border?: booleanstatusBar?: booleanfixed?: booleanleftIcon?: string
}const props = withDefaults(defineProps<Props>(), {border: false,statusBar: true,fixed: true,leftIcon: 'left',
})const { title, ...$attrs } = useAttrs()
const pageInstace = getCurrentInstance()
const emits = defineEmits(['getHeight'])
onMounted(() => {const query = uni.createSelectorQuery().in(pageInstace?.proxy)query.select('.uniNavBar').boundingClientRect((data: any) => {emits('getHeight', data.height + 'px')}).exec()
})const defaultTitle = '我是默認(rèn)標(biāo)題'
// 通過(guò)page.json文件里面的pages與subPackages數(shù)組自動(dòng)獲取標(biāo)題欄
const getCurrentPageTitle = () => {// 有傳入的標(biāo)題直接使用傳入的標(biāo)題if (title) {return title}const { route } = currentPage()const page = pagesjson.pages.find((item) => item.path === route)if (page) {return page.style?.navigationBarTitleText || defaultTitle}for (const subPackage of pagesjson.subPackages) {const subPage = subPackage.pages?.find((item) => route === `${subPackage.root}/${item.path}`)if (subPage) {return subPage.style?.navigationBarTitleText || defaultTitle}}
}// navbar返回按鈕事件
const clickLeft = () => {uni.navigateBack()
}
</script>
http://aloenet.com.cn/news/47898.html

相關(guān)文章:

  • 網(wǎng)絡(luò)營(yíng)銷方式有電腦優(yōu)化軟件排行榜
  • 免費(fèi)建設(shè)門戶網(wǎng)站巨量引擎廣告投放平臺(tái)官網(wǎng)
  • 天津市網(wǎng)站建設(shè)+網(wǎng)頁(yè)制作seo網(wǎng)站排名軟件
  • 愛(ài)戰(zhàn)網(wǎng)關(guān)鍵詞挖掘查詢工具成都優(yōu)化網(wǎng)站哪家公司好
  • 洛陽(yáng)網(wǎng)站推廣方式今日軍事頭條
  • 濟(jì)南學(xué)習(xí)網(wǎng)站制作怎樣宣傳網(wǎng)站
  • 產(chǎn)品推廣軟文200字汕頭seo關(guān)鍵詞排名
  • 網(wǎng)站后臺(tái)無(wú)法審核淘寶seo搜索引擎原理
  • 適合做外鏈的網(wǎng)站百度競(jìng)價(jià)排名公司
  • 杭州建設(shè)市場(chǎng)監(jiān)管平臺(tái)seo長(zhǎng)尾關(guān)鍵詞優(yōu)化
  • .net 網(wǎng)站 iis 配置四川seo優(yōu)化
  • 臨西企業(yè)做網(wǎng)站百度官方客服電話
  • wordpress客服設(shè)置廣州關(guān)于進(jìn)一步優(yōu)化疫情防控措施
  • 南京網(wǎng)站制作設(shè)計(jì)公司鄭州好的seo外包公司
  • 如何利用網(wǎng)站做demo怎么讓百度搜出自己
  • 網(wǎng)站關(guān)鍵詞推廣方案免費(fèi)淘寶關(guān)鍵詞工具
  • 桂林網(wǎng)站制作公司磁力搜索器下載
  • 設(shè)計(jì)師找素材的網(wǎng)站網(wǎng)站被禁用如何解決
  • 長(zhǎng)沙企業(yè)網(wǎng)站建設(shè)企業(yè)百度關(guān)鍵詞怎么刷上去
  • 網(wǎng)頁(yè)設(shè)計(jì)與制作教程課后答案第三版深圳市seo網(wǎng)絡(luò)推廣哪家好
  • 建行信用卡網(wǎng)站登錄網(wǎng)絡(luò)營(yíng)銷常用的方法有哪些
  • 創(chuàng)建空白網(wǎng)站愛(ài)站網(wǎng)seo工具包
  • 網(wǎng)站開(kāi)發(fā)專家網(wǎng)站優(yōu)化網(wǎng)站
  • 江西網(wǎng)站開(kāi)發(fā)推廣平臺(tái)排行榜有哪些
  • wordpress設(shè)置網(wǎng)站導(dǎo)航中國(guó)今日新聞
  • 網(wǎng)站左側(cè)導(dǎo)航設(shè)計(jì)視頻外鏈平臺(tái)
  • 網(wǎng)站開(kāi)發(fā)規(guī)劃書(shū)百度人工優(yōu)化
  • 網(wǎng)站新聞專題怎么做上海優(yōu)化關(guān)鍵詞的公司
  • 網(wǎng)站建設(shè)合同付款比例賬號(hào)權(quán)重查詢
  • 廣州哪里做網(wǎng)站品牌營(yíng)銷策劃方案怎么做