前端项目,个人笔记(一)【定制化主题 + 路由设计】

目录

1、项目准备

1.1、项目初始化

1.2、elementPlus按需引入

注:使用cnpm安装elementplus及两个插件,会报错:vue+element-plus报错TypeError: Cannot read properties of null (reading 'isCE ') ,修改:

测试:

1.3、定制主题与配置scss导入

测试:

1.4、路由设计

1.4.1、一级路由设计

1.4.2、二级路由设计


1、项目准备

1.1、项目初始化

  • 创建项目,就不说了
  • 创建文件夹:
  • 静态资源准备:这个其实就是你的项目中的图片(放在assets文件夹)呀,样式文件(放在styles文件夹)呀~【公司里,照片都会有UI设计师提供给你;样式的话,主要是针对公共样式,你在写项目的时候,关于css这块,我就不多说了】

备注:我这里项目是安装了sass-loader的,命令:

cnpm install sass-loader -D
cnpm install node-sass -D

1.2、elementPlus按需引入

  • 安装elementPlus的自动导入插件
npm install element-plus --save
npm install -D unplugin-vue-components unplugin-auto-import
# 这里最好使用npm,否则可能会报错
  • 配置vue.config.js文件,没有则需要创建这个文件
// vue.config.js
const AutoImport = require('unplugin-auto-import/webpack')
const Components = require('unplugin-vue-components/webpack')
const { ElementPlusResolver } = require('unplugin-vue-components/resolvers')
module.exports = { outputDir: './build',// 和webpapck属性完全一致,最后会进行合并configureWebpack: {resolve: {alias: {components: '@/components'}},//配置webpack自动按需引入element-plus,plugins: [//按需引入element-plusAutoImport({resolvers: [ElementPlusResolver()]}),Components({resolvers: [ElementPlusResolver()]}),],},}

注:使用cnpm安装elementplus及两个插件,会报错:vue+element-plus报错TypeError: Cannot read properties of null (reading 'isCE ') ,修改:

        卸载重装,使用npm

测试:

在App.vue中:

<template><el-button type="primary">Primary</el-button>
</template>

成功:


1.3、定制主题与配置scss导入

        这里其实就是,修改原本的elementplus的一些样式,以及咱们项目中其他的一些样式设置:

步骤一: elementplus样式修改:在上面创建的styles文件夹中,创建一个element文件夹,在这创建一个index.scss文件,内容如下:

/* 只需要重写你需要的即可 */
@forward 'element-plus/theme-chalk/src/common/var.scss' with ($colors: ('primary': (// 主色'base': #dfb5b5,),'success': (// 成功色'base': #a21dc7,),'warning': (// 警告色'base': #b3ab98,),'danger': (// 危险色'base': #e26237,),'error': (// 错误色'base': #9ccf44,),)
);
@use "element-plus/theme-chalk/src/index.scss" as *;

  步骤二: 项目样式设置:在styles文件夹下,创建一个var.scss文件,内容如下:

:root {  --xtx-color: #27ba9b;  
}

步骤三: 最后这两个文件,都需要在main.js文件中,引入,如下:

import '@/styles/var.scss'; 
import '@/styles/element/index.scss'; 

测试:

App.vue内容如下:

<template><el-button type="primary">Primary</el-button><div>你好帅</div>
</template><style lang="scss" scoped>
div{color: var(--xtx-color);
}
</style>

成功:


1.4、路由设计

        路由设计原则:找页面的切换方式,如果是整体切换,则为一级路由,如果是在一级路由的内部进行的内容切换,则为二级路由

1.4.1、一级路由设计

步骤一:创建一级路由组件

Layout/index.vue:

<template><div>首页    </div>
</template>

Login/index.vue:

<template><div>登录页</div>
</template>

步骤二:修改路由

修改router/index.js:

import { createRouter, createWebHistory } from 'vue-router'
import Layout from '@/views/Layout/index.vue'
import Login from '@/views/Login/index.vue'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path:'/',component:Layout      },{path: '/login',component: Login}]
})export default router

步骤三:设置一级路由页面渲染入口

App.vue:

<template><el-button type="primary">Primary</el-button><div>你好帅</div><RouterView />
</template><style lang="scss" scoped>
div{color: var(--xtx-color);
}
</style>

1.4.2、二级路由设计

各个文件修改如下:

Home/index.vue:

<template>
<div>我是home
</div>
</template>

Category/index.vue:

<template><div>我是分类</div> 
</template>

重构router/index.js:

// createRouter:创建router实例对象
// createWebHistory:创建history模式的路由import { createRouter, createWebHistory } from 'vue-router'
import Login from '@/views/Login/index.vue'
import Layout from '@/views/Layout/index.vue'
import Home from '@/views/Home/index.vue'
import Category from '@/views/Category/index.vue'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),// path和component对应关系的位置routes: [{path: '/',component: Layout,children: [{path: '',component: Home},{path: 'category',component: Category}]},{path: '/login',component: Login}]
})export default router

重构Layout/index.vue:

<template><div>我是首页<!--二级路由出口--><RouterView /></div>
</template>

效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/537606.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

旅游管理系统|基于SpringBoot+ Mysql+Java+Tomcat技术的旅游管理系统设计与实现(可运行源码+数据库+设计文档+部署说明+视频演示)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 用户功能 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 …

【MySQL】MySQL索引特性

文章目录 一、没有索引&#xff0c;可能会有什么问题二、认识磁盘1.MySQL与存储2.磁盘 三、MySQL与磁盘交互基本单位四、索引的理解五、索引操作1.创建主键索引2.创建唯一索引3.创建普通索引4.查询索引5.删除索引6.使用案例7.创建全文索引8.索引创建原则 一、没有索引&#xff…

前后端交互理解 简易表白墙(servlet)

前后端交互理解 简易表白墙&#xff08;servlet&#xff09; 文章目录 前后端交互理解 简易表白墙&#xff08;servlet&#xff09;后端核心内容前后端交互接口约定后端代码展示 上期介绍过 Servlet API &#xff0c;本篇文章目的是借助 servlet 做出一个完整的网站。在一个网站…

GooGLE留痕助手是什么?#川圣SEO#蜘蛛池

baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; baidu搜索&#xff1a;如何联系八爪鱼SEO&#xff1f; Google留痕助手&#xff0c;也被称为Google搜索留痕&#xff0c;是一种搜索引擎优化&#xff08;SEO&#x…

线性代数 --- 特征值与特征向量(下)

特征值与特征向量 Eigen Values & Eigen Vectors Part III:如何求解特征向量与特征值 The Key Equation 对于一般矩阵A&#xff0c;如何找到他的特征值与特征向量&#xff1f; Step I: Find λ first! 首先&#xff0c;我们有方程&#xff1a; 但这里有两个未知数&…

【gpt实践】同时让chatgpt和claude开发俄罗斯方块

最近chatgpt和claude都在使用&#xff0c;其实大部分日常使用场景表现都没有相差太多&#xff0c;想搞一个有趣的小实验&#xff0c;如果同时让chatgpt和claude开发俄罗斯方块谁会表现的更好呢&#xff0c;说干就干&#xff01; prompt 我选择了用英文描述&#xff0c;毕竟英…

图像处理与图像分析—图像统计特性的计算(纯C语言实现灰度值显示)

根据输入的灰度图像&#xff0c;分别计算图像的均值、方差等统计特征&#xff0c;并计算图像的直方图特征并以图形方式显示图像的直方图&#xff08;用C或C语言实现&#xff09;。 学习将会依据教材图像处理与图像分析基础&#xff08;C/C&#xff09;版内容展开 在上个笔记中&…

windows批处理脚本(bat脚本指令)

一、常用批处理内部命令简介 批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件&#xff0c;其扩展名为BAT或者CMD。这些命令统称批处理命令。 可以在键盘上按下CtrC组合键来强行终止一个批处理的执行过程。 二、常用命令 1、rem 和 ∷ 2、echo 和 3、…

【Python】成功解决NameError: name ‘plt‘ is not defined

【Python】成功解决NameError: name ‘plt’ is not defined &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您…

Java基础_内部类

文章目录 1.基本介绍1.定义&#xff1a;2.基本语法&#xff1a;3.内部类的分类 2.局部内部类1.快速入门2.局部内部类的使用 3.匿名内部类1.匿名内部类实现接口2.匿名内部类继承抽象类3.匿名内部类细节4.匿名内部类最佳实践1.匿名内部类作为实参传入函数2.匿名内部类课堂练习 4.…

算法详解——图的深度优先遍历和广度优先遍历

目录 一、图结构二、深度优先遍历2.1 图的遍历2.2 深度优先遍历过程2.3 深度优先遍历核心思想2.4 深度优先遍历实现 三、广度优先遍历3.1 广度优先遍历过程3.2 广度优先遍历核心思想3.3 广度优先遍历实现 参考文献 一、图结构 图结构指的是如下图所示的由节点和边组成的数据。 …

最新CLion + STM32 + CubeMX 开发环境搭建

网上有不少相关教程&#xff0c;但都是基于老版本Clion&#xff0c;新版有一些改变&#xff0c;但整体是简单了。 PS&#xff1a;本教程基于CLion 2023.3.4 安装所需工具参考&#xff1a;Clion搭建stm32开发环境&#xff08;STM32F103C8T6&#xff09;&#xff0c;有这一篇就够…