AM-工程化、单文件组件,PM-单文件组件中的css控制、vue-router基本使用

110 阅读4分钟

介绍脚手架的使用(理解工程化)

html 直接写 vue 代码,小时候玩积木 (练习了单个知识点的使用) 脚手架环境写 vue 代码,真正的建造高楼大厦

1.什么是脚手架

  • 工地脚手架 --- 辅助造楼
  • vue 脚手架 --- 辅助开发

2.Vue脚手架类型

  • 第一代 vue-cli vue1.0
  • 第二代 @vue/cli 文档 vue2.0
  • 第三代 vite 文档 vue3.0

npm 命令汇总

初始化
npm init 自动创建pacakge.json,记录项目相关信息
安装生产依赖 (项目开发完,打包后依旧需要的依赖包)
npm install 包名 --save 
npm install 包名 
npm i 包名 -S 
安装开发依赖 (只有开发过程中才需要的依赖) 
npm install 包名 --save-dev 
简写 npm i 包名 -D
npm i sass -D 
读取package.json中的依赖信息,并依次安装 
npm install 
简写
npm i 
删除依赖
npm uninstall 包名 
执行script脚本 
npm run xxx 
例如
npm run serve

随堂代码

自行下载 代码仓库地址

认识 Vue 工程化目录

  • node_modules 项目依赖包

  • public

    • index.html 单页面应用的页面模板
  • src 核心代码区

    • assets 静态资源目录(img、css)
    • components 公共组件
    • views 页面组件
    • App.vue 根组件
    • main.js 入口文件(初始化 vue 项目的文件)
  • .gitginore 让 git 忽略某些文件

  • package.json 依赖等信息的记录文件

  • vue.config.js 项目环境表现的配置

Vue3 单文件组件

  1. 基本使用流程

    • 封装.vue 组件
    • 引入
    • 挂载(注册)
    • 调用

文档

  1. SFC 语法定义 (Single File Component)

    单文件组件

  2. 相应语言块(template、script、style)

    • template 组件结构
    • style 组件样式
    • script 组件功能
  3. 预处理器

    @vue/cli 环境会根据 script、style 标签的 lang 调用不同的预处理器解析对应语法

    • style css 语法/less 语法/scss 语法
    • script lang="ts"
  • ts 语法预编译声明
<script lang="ts"> // use TypeScript </script>
  • scss 样式预编译语法声明

    对 css 做了上层封装,升级,里面有一些 CSS 不能使用高级语法 开发者使用 scss 语法写样式更方便,但是最终会被编译为 CSS 给到浏览器去使用

<style lang="scss">
// 内部无法解析less语法 $primary-color: #333; body { color: $primary-color; } </style>
  1. src 导入 【了解】

    拆分.vue 单文件组件内部代码,让一个文件内部的代码不要过于庞大 根据代码量灵活处理

  2. 注释

    高手写的代码会说话(命名规范) template、script、style 区域都支持代码注释 通过 crtl + / 快捷键直接执行注释 talk is cheap , show me the code

为 vscode 安装.vue 单文件的语法解析插件

  • TypeScript Vue Plugin (Volar)
  • Vue Language Features (Volar)
  • Vue VSCode Snippets

组件迁移

目的:熟悉单文件组件及运行环境

  • Divider.vue
  • Select.vue

单文件组件 CSS 功能

参考文档

1.组件作用域CSS

<style scoped> .title{ color: orange; } </style>

2.深度选择器

富文本 v-html , 带有标签跟样式的文本 富文本页面

.rich-cont :deep(p){ 
color: orange;
text-indent: 0 !important; 
}
.rich-cont :deep(img){ width: 100%; }

3.全局选择器

:global(.title){ color: orange; }

4.CSS Modules

<style module="cssdemo"> .tit{ color: skyblue; } </style>

5.CSS中的v-bind()

<script setup>
import { ref } from 'vue';
const myColor = ref('red')
const handleColor = ()=>{ 
let color = myColor.value=='red'?'blue':'red' myColor.value = color 
}
</script>
<style scoped>
/* v-bind动态控制样式 */ 
.bindStyle{ color:v-bind(myColor) } 
</style>

vue-router4

官方文档

理解 SPA 单页面应用程序 (Single Page Application)

整个项目所有交互都呈现在一个 html 中 单页面应用中所谓的页面切换,其本质是组件的切换 vue-router 路由可以让我们更高效的管理页面组件之间的关系 路由,按需引导用户访问对应的组件 路由器,按需引导用户网络

集成安装 vue-router

  1. 安装 npm i vue-router

  2. 配置 router/index.js

    • 引入、配置、导出
  3. 注入 main.js

    让 Vue 项目跟 VueRouter 两者产生关联

  4. 呈现

    在 App.vue 中呈现

    <router-view/>
    <RouterView/>
    
  5. 切换

    <router-link to="/">首页</router-link>
    <RouterLink to="/contact">联系你们</RouterLink>
    

路由规则的定义

routes 配置,约定路径与组件之间的对应关系

routes:[  //约定路由映射关系  (路径----组件)
  {
    path:'/',
    component:Home
  },
  {
    path:'/login',
    component:Login
  }
]

两种路由模式:

history 配置

  1. hash 模式 createWebHashHistory

    • 为了方便项目上线,采用 hash 更便捷
  2. history 模式 createWebHistory

    • history 模式在未来打包上线的时候,可能会导致页面 404 【经典面试题】
    • http://127.0.0.1:5173/login 会被后端误认为是一个数据接口
    • 需要后端配合,将前端路由进行独立声明配置

两个内置组件

  1. 负责呈现
  2. 负责跳转