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

网站建设仟首先金手指13辽宁平台网站建设平台

网站建设仟首先金手指13,辽宁平台网站建设平台,ui界面设计素材,怎么建立和设计公司网站一、大概流程 二、用到的Vue3知识 1、组件通信 #xff08;1#xff09;父给子 在vue3中父组件给子组件传值用到绑定和props 因为页签的数组要放在父页面中#xff0c; data(){return {tabs: []}}, 所以顶部栏需要向父页面获取页签数组 先在页签页面中定义props用来接…一、大概流程 二、用到的Vue3知识 1、组件通信 1父给子 在vue3中父组件给子组件传值用到绑定和props 因为页签的数组要放在父页面中 data(){return {tabs: []}}, 所以顶部栏需要向父页面获取页签数组 先在页签页面中定义props用来接收 props:{tabs: Array // 声明一个 props指定数据类型为数组}, 再在父页面中的子页面标签中用:绑定符绑定 NavBar :tabstabs /NavBar 这样就可以将父页面的页签数组传到子页面里 2子给父 因为子页面中存在路由跳转新页面操作时候需要增加页签也就是将新的页面作为tab加入到页签数组中而页签数组放在父页面里所以需要子给父传值 子给父传值是通过调用方法实现用this.$emit(通信名,数据)实现 比如这里的添加页签操作则是 this.$emit(addtab,tab)然后在父页面的子标签里用接受通信名并绑定调用的方法 router-view addtabaddTab/router-view 同时将数据作为data参数传入方法 addTab(data) {//最简单的push操作,还没完成其它逻辑this.tabs.push(data);} 三、实现整体逻辑 1、父页面中 1编写增加页签的逻辑 addTab(data) {// this.tabs.push(data);// 判断是否已存在相同的 title 和 routeconst exists this.tabs.some(tab tab.title data.title tab.route data.route);if (!exists) {this.tabs.forEach(tab {tab.selected false;});this.tabs.push(data);}else{this.tabs.forEach(tab {tab.selected tab.title data.title tab.route data.route;});}// 更新浏览器缓存this.saveTabsToLocalStorage()} 2编写关闭页签的逻辑 closeTab(index) {this.tabs.splice(index, 1); // 从数组中移除页签if (this.tabs.length 0) {this.tabs.forEach(tab {tab.selected false;});// 如果还有其他选项卡跳转到最后一个选项卡的路由const lastTab this.tabs[this.tabs.length - 1];this.$router.push(lastTab.route);this.tabs[this.tabs.length - 1].selectedtrue;} else {// 如果没有选项卡了跳转到默认的首页路由this.$router.push(/1/C);}// 更新浏览器缓存this.saveTabsToLocalStorage()}, 3页签数组缓存到浏览器和从缓存加载 mounted() {this.loadTabsFromLocalStorage();},methods:{// 缓存到本地saveTabsToLocalStorage() {localStorage.setItem(tabs, JSON.stringify(this.tabs));},// 从缓存加载loadTabsFromLocalStorage() {const storedTabs localStorage.getItem(tabs);if (storedTabs) {this.tabs JSON.parse(storedTabs);}},} 缓存页签数据到浏览器页面刷新时页签状态保留当前状态不会清空 4 和顶部栏通信 NavBar :tabstabs asideCollapsecollapse closetabcloseTab 5和有产生页签需求的子页面通信 router-view addtabaddTab/router-view2、顶部栏 1渲染页签 div classtop-bar!-- 渲染页签 --divv-for(tab, index) in tabs:keyindex:class[tab, { selected: tab.selected }]clickswitchTab(tab){{ tab.title }}span classclose-btn click.stopcloseTab(index)×/span/div/div 2编写页签样式 style langscss scoped.top-bar{display: flex;margin-left: 20px;caret-color: transparent; /*去除鼠标光标*/width: 100vw;overflow-x: auto; /* 允许横向滚动 *///overflow: hidden;div:hover{cursor:pointer;}div:not(:first-child){margin-left: 10px;}div{display: flex;justify-content: center;align-items: center;padding: 5px;font-weight: 500;font-size: 14px;color: #606266;border: 1px solid #DCDFE6;border-radius: 4px;//width: 100%;height: 30px;white-space: nowrap; /* 防止内容换行 */span{width: 15px;height: 15px;margin-left: 4px;display: flex;align-items: center;justify-content: center;}}.tab{background-color: #eeeeee;span:hover{background: linear-gradient(rgba(96, 98, 102, 0.1), rgba(96, 98, 102, 0.1)); /* 在悬停时更改透明度 */}}.selected{background-color: #c6fce5;} }/style 3接受父页面数据 props:{tabs: Array // 声明一个 props指定数据类型为数组}, 4向父页面发送关闭页签请求 // 关闭页签closeTab(index) {this.$emit(closetab,index)}, 3、子页面 1向父页面发送增加页签请求 methods:{addTab(tab){this.$emit(addtab,tab)}} 2在有跳转路由的需求的标签绑定请求 比如菜单项 el-menu-item index/1/C clickaddTab({title: 模拟计算, // 页面标题route: /1/C, // 路由selected: true // 设置选中状态}) 四、展示效果 五、可能会出现的错误 1、在本地环境运行无错误部署到生产环境后会报 TypeError: Cannot read properties of null (reading insertBefore)的错误 解决方案  1NavBar顶部栏组件中v-for渲染tabs数组没有判断tabs是否为空 2切换vue为版本 (vue3.2.45) 来修复它。 npm i vue3.2.45
http://www.dnsts.com.cn/news/134507.html

相关文章:

  • 做网站市场大不大深圳市罗湖网站建设
  • 东莞网站建设是什么意思建设网站的目标和作用
  • 西安定制网站北京seo优化网站建设
  • 源码建站教程销售网站开发意义
  • 手机网站设计与规划wordpress主题2zzt
  • 西部数码网站管理系统网站添加百度地图
  • 做车展招商的网站大兴网站建设报价
  • 织梦网站主页地址更改网络营销外包收费吗
  • 青岛网站设计软件山东网站备案
  • 网站内容包括哪些中核哪个公司待遇最好
  • ftp免费注册网站黄冈网站推广优化找哪家
  • 网站做拓扑图编辑南昌高端模板建站
  • 怎么创造自己的网站电话用网站做综合布线
  • 优秀app网站设计网站策划书哪个容易做
  • 销售 网站谷歌 网站开发
  • 网站建设指南推广业务网站建设
  • 1685.top贵阳网站建设设计网站哪个
  • 北京做网站的公司排名网站建设与管理实验目的
  • 唐山网站建设求职简历宁波网站建设多少钱
  • 网站建设服务器配置网站分析报告怎么写
  • 河北黄骅市简介百度seo排名规则
  • html中文美食网站建设网证书查询平台免费
  • 做网站一台电脑可以吗苏州网站建设求职简历
  • 业务员自己掏钱做网站可以吗网络域名注册多少钱
  • 高校校园网站建设项目的要求无锡建设局官方网站
  • 有做网站吗凉山建设局网站
  • 计算机网站建设是什么网站建设预期目标
  • ios 软件开发深圳网站建设优化推广公司
  • 百度竞价一个月5000够吗性能优化大师
  • 深圳网站建设前十名苏州新区高端网站制作