当前位置: 首页 > news >正文

威海自适应网站建设wordpress字体路径设置

威海自适应网站建设,wordpress字体路径设置,东莞市城乡和住房建设局,福州百度seo排名文章目录 1.整体思路2.实现过程 概要 提示#xff1a;这里可以添加技术概要 例如#xff1a; openAI 的 GPT 大模型的发展历程。 1.整体思路 在之前做的后台项目中#xff0c;菜单、标签页和面包屑之间的联动#xff0c;自己都是通过在路由前置守卫中#xff0c;定义b… 文章目录 1.整体思路2.实现过程 概要 提示这里可以添加技术概要 例如 openAI 的 GPT 大模型的发展历程。 1.整体思路 在之前做的后台项目中菜单、标签页和面包屑之间的联动自己都是通过在路由前置守卫中定义bus总线程通过.emit 和 .on 发送拿取需要的数据然后再做一些自己想要的处理实现自己想要的结果后面在修改项目的时候就想要一中比较方便的办法抛弃了通过bus总线程实现的方法。选择通过状态管理stroe来存储当前的路由信息控制三者的联动效果。 2.实现过程 1.创建你的组件文件nav:菜单 、header:面包屑 、tabs标签页,然后先把自己的基础页面信息。 2.将这些组件引入到view-index文件中 页面整体效果 2.创建store文件: index.ts  、user.ts 文件名字自己随便取,后面需要引入的时候不要把名称写错了 store  //我习惯了命名 store  实际可以取名 pinia 因为用到的组件库就是这个 * index * user index.ts import {createPinia} from pinia let pinia createPinia() export default pinia user.ts import {defineStore} from pinia const useCounterStore defineStore(appStore,{state :() ({menuiIsCollapse : false , //menu导航栏是否为展开NavList: [], //menu导航栏的数据TabsList:[], //标签页的显示数据NowRouterPath : //当前路由}),actions : {//菜单栏的缩放updataMenuWidth(status:boolean){this.menuiIsCollapse statusthis.menuiIsCollapse ? document.documentElement.style.setProperty(--el-aside-width, 64px) : document.documentElement.style.setProperty(--el-aside-width, 220px)},//第一次进入网站获取nav导航栏信息oneSetMenuList (obj:any | []){this.NavList obj},//获取当前的路由信息getNowRouterPath(path:object){this.NowRouterPath path.fullPaththis.screenTabsList(path)},//筛选tabs的数据显示 不存在就添加到 TabsList 中 screenTabsList(to_data:object){if(this.TabsList.length 0){this.TabsList.push(to_data)}else{if(!this.TabsList.some(item item.fullPath to_data.fullPath)){this.TabsList.push(to_data)}}}}, })export default useCounterStore 3.创建router.ts文件,在src目录下新建router文件夹 - 新建index.ts文件 import { createRouter ,createWebHashHistory , createWebHistory } from vue-router; import pinia from /store import useUserStore from /store/user; import { inject } from vue;//必须 否则下面使用 _store 会报错 useUserStore(pinia)const routes [你自己的菜单数据]const router createRouter({history : createWebHashHistory(),routes })//前置路由守卫 router.beforeEach((to, from, next) {//调用 store 在mian.ts中定义const _store inject(store)//将当前路由信息传递给store-user.ts中的方法_store.getNowRouterPath(to)const isAuthenticated checkIfUserIsAuthenticated();if (to.matched.some(record record.meta.requiresAuth) !isAuthenticated) {next({ name: login });} else if (to.name login isAuthenticated) {next({ name: index });} else {next();} }); function checkIfUserIsAuthenticated() {// 检查本地存储中的认证状态const isAuthenticated localStorage.getItem(isAuthenticated);// 如果认证状态为true则返回true否则返回falsereturn isAuthenticated true; } export default router 没有注册userUserStore出现的错误大概意思就是当前没有组件生产拿取不到Mian.ts中注册的pinia 附上mian.ts文件 import { createApp } from vue import ./style.css import App from ./App.vue import router from ./router; import ElementPlus from element-plus import * as ElementPlusIconsVue from element-plus/icons-vue import element-plus/dist/index.css import ./assets/css/global.less; import { createPinia } from pinia; import bus from ./mitt; import useCounterStore from /store/user; import { storeToRefs } from pinia; const pinia createPinia();const store useCounterStore() const storerefs storeToRefs(store)//模拟数据 import { mockXHR } from ./mock/index; mockXHR()const app createApp(App)for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component) }app.use(pinia) app.use(router) app.use(ElementPlus)//VUE提供了provide 和 inject来解决了这个问题。无论组件层次结构有多深父组件都可以作为其所有子组件的依赖提供者。app.provide(store_state, storerefs) //拿取到的pinia的state app.provide(store, store) //拿到的整个pinia app.provide(bus, bus) app.mount(#app)4.菜单文件 nva-index.vue script langts setup import { onMounted, reactive, ref ,watch,inject} from vue; import { useRoute } from vue-router; import { get } from ../../axios/api; import bus from /mitt; const isCollapse ref(true); const router useRoute(); let nowRouter ref(); let NavList ref([]); let childPath ref([]);const store inject(store) const store_state inject(store_state)//监听当前路由信息的变化 newVlaue是新值 ,vlaue 是变化之前的旧值 watch(()store_state.NowRouterPath.value,(newValue,value){//判断当前的菜单数据信息中是否包含新的路由数据nowRouter赋值为新的路由,nav就会选中高亮显示NavList.value.map((item) {newValue.indexOf(item.fullPath) -1? item.children.map((child: any) {nowRouter.value newValue;router.fullPath.indexOf(newValue) ! -1 ? (nowRouter.value newValue) : ;}): ;}); })onMounted(() { //这个只是判断请求的nav数据是否存在本地中存在就不请求接口了if(sessionStorage.getItem(NavList)){NavList.value JSON.parse(sessionStorage.getItem(NavList)) getNowPath()}else{getNavList()} });//函数const getNavList (){let params {token: localStorage.getItem(token),};get(/api/getMenuList, params).then((res) {NavList.value res.data;store.oneSetMenuList(NavList);sessionStorage.setItem(NavList,JSON.stringify(NavList.value))getNowPath()}); } const ClickToGo (data){}const getNowPath () {NavList.value.map((item) {item.children.length ! 0? item.children.map((child: any) {childPath.value.push(child.path);}): childPath.value.push(item.path);});childPath.value.map((item) {if (router.path.indexOf(item) ! -1) {nowRouter.value item;}}); } /script templateel-menuclassel-menu-vertical-demo:collapsestore_state.menuiIsCollapse.value:unique-openedtrue:routertrue //为true的话可以根据点击菜单中绑定的index是/index定义的路由可点击直接跳转:default-activenowRouterbackground-color#545c64text-color#fffactive-text-color#ffd04btemplate v-for(item, index) in NavListel-sub-menu v-ifitem.children.length ! 0 :indexitem.idtemplate #title //下拉菜单 el-iconcomponent :isitem.web_icon //el-iconspan{{ item.title }}/span/template //点击跳转菜单el-menu-item-group v-for(children, k) in item.childrenel-menu-item :indexchildren.path clickClickToGo(children){{ children.title }}/el-menu-item/el-menu-item-group/el-sub-menuel-menu-item v-else :indexitem.pathel-iconcomponent :isitem.web_icon //el-icontemplate #title{{ item.title }}/template/el-menu-item/template/el-menu /template style scoped langless /style 5.tab组件 templatediv classcontainer el-tabsv-modeleditableTabsValuetypecardclosabletab-removeremoveTabtab-clickgetRouterel-tab-panev-for(item, index) in editableTabs:keyindex:labelitem.meta.name:nameitem.fullPath/el-tab-pane/el-tabs/div /template script langts setup import { defineComponent, ref, onMounted ,inject,watch} from vue; import bus from /mitt; import { useRouter } from vue-router;const store inject(store)const store_state inject(store_state)//直接赋值为当前的路由 editableTabsValue 对应到 el-tab-pane中的name 如果相同就会自动高亮显示let editableTabsValue store_state.NowRouterPath;//pinia中保存的 tabs数据const editableTabs store_state.TabsList// 页面加载时执行onMounted(() {});// 移除选项卡const removeTab (targetName: string) {};// 点击选项卡const getRouter (i: any) {}; /script 6.header 面包屑组件 templatediv classheader-boxdiv classheader_itemel-breadcrumb separator/ classheader_left_title el-breadcrumb-item :to{ path: /home }主页/el-breadcrumb-itemel-breadcrumb-item{{ titleList.Pname }}/el-breadcrumb-itemel-breadcrumb-item v-iftitleList.name{{titleList.name}}/el-breadcrumb-item/el-breadcrumb/div/div /template script setup langts import { onMounted, defineProps, provide, inject ,watchEffect ,watch} from vue; import { useRouter, useRoute } from vue-router; import { ref, reactive } from vue;const router useRoute();//面包屑显示数据let titleList reactive({ Pname: , name: });const store inject(store)const store_state inject(store_state)onMounted(() {//拿取router 路由信息getMenuList(router.path);});//监听当前路由的信息变化 watch(()store_state.NowRouterPath.value,(newValue,value){getMenuList(newValue); })function getMenuList(path) { //path:当前路由 拿到nav菜单数据对比是否能找到path对应的菜单信息let menuList JSON.parse(sessionStorage.getItem(NavList)) menuList.map((item) {if (item.path ! path) {//判断是否存在children 可点击菜单item.children.length ! 0? item.children.map((child) {//存入 下拉菜单的名称 和 筛选出的点击菜单名称if (child.path path) {titleList.Pname item.title;titleList.name child.title;}}): ;} else {titleList.Pname item.title;titleList.name ;}}); } 如有写的不明确的地方可以提出来或者大佬们有更好的方法。
http://www.zqtcl.cn/news/246383/

相关文章:

  • 商业网站建设设计公司平面ui设计网站
  • 南宁建站免费模板网页无法访问如何解决h5
  • 怎么查网站后台地址电商网站怎样做优化才最合理
  • 太原网站建设总部在哪服务器做多个网站
  • 自己做网站怎么能被访问Net网站开发招聘
  • 春晗环境建设有限公司网站wordpress伪静态卡死
  • 网站建设后期维护流程车培训网站建设
  • 云南建设企业网站wordpress用户角色权限
  • 代码做网站常用单词成品短视频网站源码搭建
  • 北京网站建设推四川省建设厅燃气网站
  • 网站 功能呢网站建设设计师的工作内容
  • 网站设计素材包微信公众号平台官网免费注册
  • 做设计灵感的网站网站网站建设
  • 华强北附近网站建设电商网站建设规划
  • 泰和网站制作长尾词排名优化软件
  • 国外做的好的鲜花网站万网二手已备案域名
  • 那个网站做的系统最好开奖视频网站开发
  • 学设计的网站推荐南京做网站南京乐识专业
  • 企业网站建设调查问卷重庆网站制作外包
  • 要建设一个网站需要什么北京优化网站公司
  • 多语言网站建设方案大同建设网站
  • 测网站打开的速度的网址wordpress 逻辑代码
  • 网站代码开发徐州网站建设青州陈酿
  • 建网站的软件有哪些做网站怎么挣钱赚钱
  • 徐州市建设局招投标网站谷歌网站的主要内容
  • 门户网站建设工作情况汇报花店网站建设课程设计论文
  • 长春绿园网站建设哪里制作企业网站
  • 建设网站计划ppt模板核酸二维码
  • 宁波网络推广制作seo关键词推广公司
  • 东莞市网站推广西安推广公司无网不胜