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

设计学习网站让百度收入 wordpress

设计学习网站,让百度收入 wordpress,网站留言板作用,网站开发保存学习进度的方案文章目录 ⭐前言#x1f496;vue3系列文章 ⭐ 自动化配置路由#x1f496;引入vite版本自定义目录映射#x1f496;自动化读取文件下的路由#x1f496;main入口加载路由#x1f496;入口app.vue配置#x1f496;layout基础布局配置#x1f496;效果 ⭐总结⭐结束 ⭐前言… 文章目录 ⭐前言vue3系列文章 ⭐ 自动化配置路由引入vite版本自定义目录映射自动化读取文件下的路由main入口加载路由入口app.vue配置layout基础布局配置效果 ⭐总结⭐结束 ⭐前言 大家好我是yma16本文分享关于 前端vitevue3——自动化配置路由布局。 背景 在inscode写了一个前端vitevue3js的项目路由分配有点乱 现在给这个项目做个优化路由配置。 没有配置路由之前的前端界面。 改造之后 vite Vite是一种基于公有链技术的快速、安全和可扩展的开源区块链项目。它旨在通过使用异步交易模型和基于状态的共识算法来提高区块链的性能和可扩展性。 Vite的发展可以追溯到2018年当时Vite团队发布了Vite TestNet开发者和用户可以通过该测试网络体验Vite的功能和性能。随后Vite于2019年底发布了Vite MainNet正式上线并开放给广大用户使用。 在Vite的发展过程中团队不断进行技术改进和优化以提高其性能和可扩展性。Vite采用了异步交易模型即交易可以并行处理提高了交易的速度和吞吐量。另外Vite使用基于状态的共识算法即通过状态机来决定交易的顺序和执行结果这可以减少节点之间的通信和同步开销提高网络的效率。 除了性能和可扩展性的优化Vite还提供了一些特色功能如原生支持智能合约和去中心化交易所DEX。Vite的智能合约是基于Solidity编写的与以太坊的智能合约兼容使开发者可以轻松迁移到Vite平台。而Vite的DEX允许用户直接在区块链上进行点对点的交易无需信任任何第三方中介提高了交易的安全性和可信度。 vue-router vue-router是Vue.js官方的路由插件用于实现前端路由。它可以实现单页应用中的页面跳转、嵌套路由、路由参数传递、路由守卫等功能。通过vue-router可以根据不同的路由地址动态地渲染不同的组件实现页面的切换和更新。同时vue-router还提供了一些API和导航守卫可以在路由跳转前后做一些额外的操作如权限验证、页面统计等。Vue.js官方推荐使用vue-router来管理前端路由。 vue3系列文章 vue3 fastapi 实现选择目录所有文件自定义上传到服务器 前端vue2、vue3去掉url路由“ # ”号——nginx配置 csdn新星计划vue3tsantd赛道——利用inscode搭建vue3(ts)antd前端模板 认识vite_vue3 初始化项目到打包 python_selenuim获取csdn新星赛道选手所在城市用echarts地图显示 让大模型分析csdn文章质量 —— 提取csdn博客评论在文心一言分析评论区内容 前端vue3——html2canvas给网站截图生成宣传海报 vue3echarts可视化——记录我的2023编程之旅 ⭐ 自动化配置路由 vue3前端自动化配置路由离不开vue-router的使用主要时使用router进行加载vue文件 引入vite版本自定义目录映射 package.json {name: vuejs-with-vite,author: yma16,version: 0.0.0,scripts: {dev: vite,build: vite build,preview: vite preview --port 4173},dependencies: {ant-design-vue: ^3.2.17,axios: ^1.2.2,echarts: ^5.4.2,guess: ^1.0.2,html2canvas: ^1.4.1,vue: ^3.2.37,vue-router: ^4.2.5,vuex: ^4.1.0},devDependencies: {types/node: ^18.19.6,vitejs/plugin-vue: ^4.0.0,less: ^4.2.0,prettier: ^3.2.2,vite: ^4.0.0},license: MIT } vite.config.js配置映射到src目录 import { defineConfig } from vite import { resolve } from path; import vue from vitejs/plugin-vue// https://vitejs.dev/config/ export default defineConfig({// 打包相对路径base: ./,server: {host: true,},resolve: {alias: {: resolve(__dirname, src),},},plugins: [vue()] }) 自动化读取文件下的路由 vite读取modules目录下的配置加入路由中 import * as VueRouter from vue-router;// import.meta.glob() 直接引入所有的模块 Vite 独有的功能 const modules import.meta.glob(./modules/*.js, { eager: true });const routeModuleList[]console.log(modules,modules) // 加入到路由集合中 Object.keys(modules).forEach((key) {const mod modules[key].default || {};const modList Array.isArray(mod) ? [...mod] : [mod];console.log(modList,modList)routeModuleList.push(...modList); });console.log(routeModuleList,routeModuleList) const router VueRouter.createRouter({// 4. 内部提供了 history 模式的实现。为了简单起见我们在这里使用 hash 模式。history: VueRouter.createWebHashHistory(),routes: routeModuleList, }); // 路由权限 beforeResolverouter.beforeResolve(async (to, from, next) {next() }); export default router; 路由文件modules/layout.js // 基础路由 // ts-ignore import LAYOUT from /layout/index.vueexport default {path: /,name: Layout,component: LAYOUT,redirect: /SearchGrade,meta: {orderNo: 1,icon: ion:grid-outline,title: vue3 平台,},children: [{path: SearchGrade,name: SearchGrade,component: () import(/components/SearchGrade.vue),meta: {icon: ion:grid-outline,title: csdn查分,},},{path: GameChart,name: GameChart,component: () import(/components/GameChart.vue),meta: {icon: ion:grid-outline,title: vue3赛道可视化,},},{path: Draw,name: Draw,component: () import(/components/draw/Draw.vue),meta: {icon: ion:grid-outline,title: 抽奖,},},{path: Drag,name: Drag,component: () import(/components/drag/Drag.vue),meta: {icon: ion:grid-outline,title: 拼图,},},{path: Commit,name: Commit,component: () import(/components/commit/Commit.vue),meta: {icon: ion:grid-outline,title: 大模型分析评论,},},{path: visual,name: visual,component: () import(/components/visual/index.vue),meta: {icon: ion:grid-outline,title: 2023编码可视化,},},{path: visualHtml,name: visualHtml,component: () import(/components/visualHtml/index.vue),meta: {icon: ion:grid-outline,title: 可视化html,},}], }; 目录结构如下 路由配置 main入口加载路由 createApp加载定义的router import { createApp } from vue import App from ./App.vue import Antd from ant-design-vue; import ant-design-vue/dist/antd.css; import ./assets/main.css import Router from ./router/index.js;createApp(App) .use(Antd) .use(Router) .mount(#app) 配置文件 入口app.vue配置 app.vue的配置 script setupimport { ref } from vue;import zhCN from ant-design-vue/es/locale/zh_CN;import dayjs from dayjs;import dayjs/locale/zh-cn;/** 下载图片 */ const downloadBase64 (content, fileName) {const base64ToBlob function (code) {let parts code.split(;base64,);let contentType parts[0].split(:)[1];let raw window.atob(parts[1]);let rawLength raw.length;let uInt8Array new Uint8Array(rawLength);for (let i 0; i rawLength; i) {uInt8Array[i] raw.charCodeAt(i);}return new Blob([uInt8Array], {type: contentType});};let aLink document.createElement(a);let blob base64ToBlob(content);aLink.download fileName .png;aLink.href URL.createObjectURL(blob);aLink.click(); };// 截图 const shotAction () {html2canvas(document.getElementById(render-id), {useCORS: true,proxy: inscode.csdn.net,allowTaint: true,scale: 2,}).then(function (canvas) {console.log(canvas, canvas)const base64 canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, );const base64img data:image/png;base64,${base64};downloadBase64(base64img, state.current);// document.body.appendChild(canvas);}); }dayjs.locale(zh-cn);const locale ref(zhCN); /scripttemplate!-- 国际化配置--a-config-provider :localelocalediv idapprouter-view//div/a-config-provider /templatestyle scoped#app{width: 100vw;height: 100vh;background-size: 100%;background: linear-gradient(rgba(38, 38, 38, 0.5), rgba(40,140,234, 0.6)), url(/static/img/previewFix.jpg) no-repeat center;} /style layout基础布局配置 layout的vue页面配置 script setup import {MenuUnfoldOutlined,MenuFoldOutlined, } from ant-design/icons-vue;import { reactive, onMounted } from vue; import { useRouter } from vue-router;//router const router useRouter(); const state reactive({title: vue3平台,openKeys: [],selectedKeys: [],collapsed: false,menuList: [] });const collapeAction () {state.collapsed !state.collapsed }const clickMenu (menu, item) {console.log(item, item)state.openKeys [menu.key]state.selectedKeys [menu.key]router.push({name: item.name}) } //{ item, key, selectedKeys } const selectMenu (e) {console.log(e) };const renderIcon (icon) {// return h(icon)return }onMounted(() {console.log(router.current.value, router)const { routes } router.optionsstate.menuList routes.reduce((pre, item) {const isHiddenInLayout item.meta.isHiddenInLayoutif (!isHiddenInLayout) {const menuItem {title: item.meta.title,path: item.path,key: item.name,name: item.name,icon: item.meta.icon,children: item.children.map(children {return {title: children.meta.title,path: children.path,key: children.name,name: children.name,}})}pre.push(menuItem)}return pre}, []) }); /scripttemplatea-layout classlayout-containera-layout-sider v-model:collapsedstate.collapsed :triggernull collapsiblediv classlogo /a-menu v-model:openKeysstate.openKeys v-model:selectedKeysstate.selectedKeys themedark modeinlineselectselectMenua-sub-menu v-formenu in state.menuList :keymenu.keytemplate #icon {{ renderIcon(menu.icon) }}/templatetemplate #title span{{ menu.title }}/span/templatea-menu-item v-formenuChild in menu.children :keymenuChild.key clickclickMenu(menu, menuChild){{ menuChild.title }}/a-menu-item/a-sub-menu/a-menu/a-layout-sidera-layouta-layout-header stylebackground: #ffffff; padding-left: 20pxdiv styledisplay: flexdiv stylewidth: 50%menu-unfold-outlined v-ifstate.collapsed classtrigger clickcollapeAction /menu-fold-outlined v-else classtrigger clickcollapeAction /{{ state.title }}/div/div/a-layout-headera-layout-content classcontent-box!-- 渲染子路由--router-view //a-layout-content/a-layout/a-layout /templatestyle langless .layout-container {width: 100%;height: 100%;overflow: hidden; }.content-box {overflow: auto;max-height: calc(100vh - 64px);padding: 24px;background: #fff; }#components-layout-demo-custom-trigger .trigger {font-size: 18px;line-height: 64px;padding: 0 24px;cursor: pointer;transition: color 0.3s; }#components-layout-demo-custom-trigger .trigger:hover {color: #1890ff; }#components-layout-demo-custom-trigger .logo {height: 32px;background: rgba(255, 255, 255, 0.3);margin: 16px; }.site-layout .site-layout-background {background: #fff; }.main-container {width: 100%;height: 100%; } /style 效果 修改之后的页面配置 csdn赛道可视化 拖拽拼图 2023编码可视化 抽奖页面 inscode代码 ⭐总结 自动化配置路由思路分解 router文件的自动读取形成数据驱动layout布局页面读取路由渲染子路由 vue-router使用 首先引入Vue和Vue Router并通过Vue.use(VueRouter)来告诉Vue使用VueRouter插件。 然后创建一个VueRouter实例并通过routes属性配置路由规则。 最后在创建Vue实例时将router实例传入并在根组件的模板中添加一个router-view组件来渲染路由组件 ⭐结束 本文分享到这结束如有错误或者不足之处欢迎指出 点赞是我创作的动力 ⭐️ 收藏是我努力的方向 ✏️ 评论是我进步的财富 最后感谢你的阅读
http://www.sczhlp.com/news/164240/

相关文章:

  • 沈阳营销型网站旅游网站建设意义
  • 城市门户网站模板wordpress显示当前文章的子分类
  • 自贡住房和城乡建设厅网站弹幕网站如何做
  • 支付网站建设费的会计分录动画制作app推荐
  • 电子公章印章在线制作网站苏州seo优化外包公司
  • 一站式营销平台内江市建设教育培训官方网站
  • RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems
  • 特地拎出来的总结
  • 2025异型件厂家推荐:邯郸市烁燊紧固件,广泛应用于建筑、桥梁、机械、电力、交通等诸多领域
  • 西宁手机网站建设wordpress+移动端+域名
  • 公司需要网站 该怎么做昭通网站建设兼职
  • 做网站背景全覆盖的代码微信投票网站怎么做
  • 徐州网站seo公司外贸营销网站建站
  • 山东中迅网站建设重庆品牌设计公司排行
  • 怎么开一个做网站的工作室中国站长之家官网
  • 网站一直没有收录肃宁网站建设公司
  • 怎么在别人网站做跳转wordpress播放歌
  • 网站设计制作全网优惠廊坊网站制作
  • 国外 定制网站数据分析软件工具有哪些
  • 网站建设需要的企业找项目做区域代理
  • 大型网站的技术架构问题ae模板下载网站
  • 中小型网站建设价格中关村在线手机频道
  • modernize wordpress咸阳seo优化
  • 进一步加强网站建设网页设计学校网站
  • 撰写网站策划书微网站建设加盟
  • 阿里巴巴国际网站怎么做WordPress修改_
  • 民宿可以在哪些网站做推广哪家网站建设服务好
  • 南城网站建设公司咨询网站首页制作教程视频
  • 兼职网网站建设方案建议书易企推
  • 赣州福泰龙网站建设网站关键字优化销售