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

vue-day03

目录

1第三天课程介绍

2vue生命周期及其四个阶段

问题:

3生命周期案例-初始化渲染和获取焦点

问题:

4小黑记账清单-添加/删除/渲染(2)

5饼图渲染

问题:

6工程化开发和脚手架

7项目目录介绍和运行流程

8组件化开发和根组件

问题:

9普通组件的注册-局部注册

问题:

10普通组件的注册-全局注册

问题:

11小兔鲜首页-拆分模块组件-组件拆分

12小兔鲜首页-实现结构和样式并拆分组件

13总结


1第三天课程介绍

2vue生命周期及其四个阶段

问题:

各自阶段的名称及单词?

各自阶段完成什么工作?

3生命周期案例-初始化渲染和获取焦点

问题:

如何一进页面让搜索框就获取焦点?

在mounter阶段使用foucus();

4小黑记账清单-添加/删除/渲染(2)

动态控制类名样式

axios.get和axios.post传参的区别?

将created中注释的代码封装到method中的getList//因为这个方法通用,增加/删除等涉及修改的都得需要使用

这里面的typeof什么意思?

问题:

axios.get和axios.post传参的区别?

上图有,主要是传参不一样

typeof this.price 的作用是检测 this.price 这个变量的数据类型,然后与字符串 'number' 比较。

5饼图渲染

使用this将它们联系起来,另外在methods只需要修改setOption里面的data数据即可,其它的不动是不会消失的,只会覆盖修改的地方(data)

注意,箭头函数中,如果返回值是一个对象,一定要记得用括号将其包裹住

问题:

ecahrts怎么使用?

6工程化开发和脚手架

里面的命令过时了,去看Javaweb_p150节吧

问题:
注意使用npm --version而不是vue --verison查看版本

7项目目录介绍和运行流程

下面图片解释.$mount('#app')和render的替换写法

8组件化开发和根组件

问题:

template标签下只能有一个div标签,但是可以有多层标签

script标签里面的东西可以写在export default中?

在 Vue 组件的 <script> 标签中,代码写在 export default 里,是因为 Vue 采用模块化思想管理组件,而 export default 是 ES6 模块系统的语法,用于将组件的配置信息 “暴露” 出去,让 Vue 框架能够识别和处理这个组件。

style标签的属性 lang="less"是什么意思 ?

在 Vue 组件的 <style> 标签中,lang="less" 表示该样式代码使用 Less 预处理器语法 编写。

含义与作用

  • Less 是一种 CSS 预处理器,它在 CSS 基础上扩展了变量、嵌套、混合(Mixin)、函数等功能,让样式编写更高效、更具维护性。
  • lang="less" 告诉 Vue 编译器:这段样式代码不是普通 CSS,需要先通过 Less 编译器处理,再转换为浏览器可识别的 CSS 代码。
  • 其实就是可以嵌套的格式()

9普通组件的注册-局部注册

问题:

面两个HmHeader各指什么?

10普通组件的注册-全局注册

问题:

组件对象对应上面的的import的,组件名自己再起就行,最好一样驼峰命名即可

11小兔鲜首页-拆分模块组件-组件拆分

12小兔鲜首页-实现结构和样式并拆分组件

13总结

上面理解可以不看下面

Vue 从入门到实战:核心知识点与项目实践全解析
作为前端开发的三大主流框架之一,Vue 以其渐进式、易上手、生态完善的特点,成为许多开发者入门前端框架的首选。本文将结合 Vue 学习路径中的核心知识点,从生命周期、工程化、组件化到项目实战,为你系统梳理 Vue 开发的关键脉络,助你从 Vue 新手成长为能独立开发项目的实践者。
一、Vue 生命周期:组件的 “成长轨迹”
Vue 实例从创建到销毁的整个过程,被称为生命周期。理解生命周期,能让我们在合适的时机执行代码(如初始化数据、发起请求、操作 DOM 等),是掌握 Vue 组件逻辑的基础。
1. 生命周期的四个核心阶段
Vue 生命周期可分为创建、挂载、更新、销毁四个大阶段,每个阶段对应一组钩子函数:
创建阶段:
beforeCreate:实例刚被创建,数据观测(data 响应式)和事件配置尚未完成,无法访问 data、methods。
created:实例创建完成,data 和 methods 已初始化,可在此发起异步请求(如接口调用),但 DOM 尚未挂载。
挂载阶段:
beforeMount:模板编译完成,但未挂载到页面,$el 为虚拟 DOM。
mounted:DOM 已挂载到页面,可在此操作真实 DOM(如初始化第三方插件、获取 DOM 尺寸)。
更新阶段:
beforeUpdate:数据更新后,DOM 尚未重新渲染,可获取更新前的 DOM 状态。
updated:DOM 已重新渲染,可获取更新后的 DOM 状态。
销毁阶段:
beforeDestroy:实例销毁前调用,可在此清理定时器、解绑事件等。
destroyed:实例已销毁,所有监听和子实例均被销毁。
2. 生命周期的实际应用场景
以 “初始化渲染并获取焦点” 的案例为例:
vue
<template>
  <input ref="inputRef" type="text" />
</template>
<script>
export default {
  mounted() {
    // 挂载完成后,操作真实 DOM 获取焦点
    this.$refs.inputRef.focus();
  }
};
</script>
在 mounted 钩子中操作 DOM 是最安全的,因为此时 DOM 已完全渲染。
二、工程化开发:从 “手写代码” 到 “高效协作”
Vue 工程化开发依赖脚手架工具,它能帮我们快速搭建项目结构、集成打包工具、规范化开发流程,是企业级项目的必备能力。
1. 脚手架工具:Vue CLI 与 Vite
Vue CLI:Vue 官方早期推出的脚手架,基于 Webpack 构建,功能完善但启动速度较慢。安装与创建项目:
bash
# 全局安装 Vue CLI
npm i @vue/cli -g
# 创建项目
vue create my-vue-project
Vite:新一代构建工具,基于原生 ES 模块,启动速度极快(秒级),是 Vue 3 推荐的脚手架。安装与创建项目:
bash
# 创建项目(Vue 3 模板)
npm create vue@latest
# 进入项目并启动
cd my-vite-project && npm run dev
2. 项目目录与运行流程
以 Vite 搭建的 Vue 3 项目为例,核心目录结构及作用如下:
plaintext
my-vite-project/
├── public/          # 静态资源(如 favicon.ico)
├── src/
│   ├── assets/      # 资源文件(图片、样式)
│   ├── components/  # 公共组件
│   ├── router/      # 路由配置(Vue Router)
│   ├── store/       # 状态管理(Pinia 或 Vuex)
│   ├── views/       # 页面组件
│   ├── App.vue      # 根组件
│   └── main.js      # 入口文件
└── package.json     # 项目依赖与脚本配置
运行流程:main.js 导入 App.vue 并挂载到 index.html 的 #app 节点,App.vue 中通过路由或组件嵌套渲染整个应用。
三、组件化开发:Vue 的 “核心竞争力”
组件化是 Vue 实现代码复用、逻辑解耦的关键机制。一个 Vue 应用由若干个组件嵌套、组合而成,从 “根组件” 到 “业务组件”,构成完整的页面。
1. 根组件与组件树
Vue 项目的入口是 App.vue(根组件),它通过引入其他组件(如头部、侧边栏、内容区)构建页面结构,形成组件树。例如:
vue
<!-- App.vue -->
<template>
  <div class="app">
    <HmHeader /> <!-- 头部组件 -->
    <HmSidebar /> <!-- 侧边栏组件 -->
    <router-view /> <!-- 路由视图,渲染页面组件 -->
  </div>
</template>
<script>
import HmHeader from './components/HmHeader.vue';
import HmSidebar from './components/HmSidebar.vue';
export default {
  components: { HmHeader, HmSidebar }
};
</script>
2. 组件的注册:局部注册与全局注册
组件注册分为局部注册(仅当前组件可用)和全局注册(所有组件可用)。
局部注册:在需要使用组件的文件中,通过 import 引入,再在 components 选项中注册。如上文的 HmHeader 就是局部注册,仅在 App.vue 中可用。
全局注册:在 main.js 中通过 Vue.component(Vue 2)或 app.component(Vue 3)注册,所有组件均可直接使用。示例:
js
// main.js(Vue 3)
import { createApp } from 'vue';
import App from './App.vue';
import HmButton from './components/HmButton.vue';

const app = createApp(App);
// 全局注册 HmButton 组件
app.component('HmButton', HmButton);
app.mount('#app');
全局注册适合通用组件(如按钮、输入框),但会增加打包体积,需谨慎使用。
四、实战项目:从 “理论” 到 “落地”
学习 Vue 的最终目标是独立开发项目。以下以 “小兔鲜电商平台” 和 “数据可视化(饼图渲染)” 为例,展示 Vue 在实际业务中的应用。
1. 项目拆分:模块化与组件化思维
以 “小兔鲜首页” 为例,需将页面按功能模块拆分为组件:
头部组件:Header.vue(包含搜索、导航)
轮播组件:Carousel.vue
分类组件:Category.vue
商品列表组件:GoodsList.vue
每个组件只关注自己的逻辑和样式,通过 props 传递数据、emit 触发事件,实现 “高内聚、低耦合”。
2. 结构与样式拆分:单文件组件的优势
Vue 的单文件组件(.vue) 允许在一个文件中写模板、逻辑、样式,让组件的结构更清晰。以 Header.vue 为例:
vue
<template>
  <!-- 模板:页面结构 -->
  <header class="header">
    <div class="search">搜索框</div>
    <nav class="nav">导航菜单</nav>
  </header>
</template>

<script>
// 逻辑:数据、方法、生命周期
export default {
  data() {
    return {
      searchText: '请输入商品名称'
    };
  },
  methods: {
    handleSearch() {
      console.log('搜索内容:', this.searchText);
    }
  }
};
</script>

<style scoped>
/* 样式:作用域仅当前组件 */
.header {
  display: flex;
  justify-content: space-between;
}
.search {
  width: 300px;
  height: 40px;
  background: #f5f5f5;
}
</style>
scoped 属性让样式仅作用于当前组件,避免全局样式污染。
3. 数据可视化:饼图渲染(ECharts 结合 Vue)
在 Vue 中集成 ECharts 实现饼图渲染,步骤如下:
安装 ECharts:
bash
npm install echarts
在组件中初始化图表:
vue
<template>
  <div ref="chartRef" style="width: 400px; height: 400px;"></div>
</template>
<script>
import * as echarts from 'echarts';
export default {
  mounted() {
    // 初始化 ECharts 实例
    const chart = echarts.init(this.$refs.chartRef);
    // 配置饼图选项
    const option = {
      series: [
        {
          type: 'pie',
          data: [
            { value: 30, name: '商品A' },
            { value: 50, name: '商品B' },
            { value: 20, name: '商品C' }
          ]
        }
      ]
    };
    // 渲染图表
    chart.setOption(option);
  }
};
</script>
五、总结:Vue 学习的 “道” 与 “术”
学习 Vue 不仅是掌握 API 和语法,更要理解其设计思想:
渐进式框架:可根据需求逐步引入 Vue 特性(从简单渲染到路由、状态管理),降低学习成本。
响应式系统:通过 Object.defineProperty(Vue 2)或 Proxy(Vue 3)实现数据与视图的自动同步,让开发者专注于业务逻辑。
组件化思维:将页面拆分为可复用的组件,是大型项目协作和维护的核心保障。
从生命周期的 “底层逻辑”,到工程化的 “效率工具”,再到组件化的 “架构设计”,最后到实战项目的 “落地能力”,这是一条完整的 Vue 学习路径。建议在学习过程中,多动手写 Demo、参与开源项目或搭建个人博客,将知识转化为实际技能。
Vue 的生态还在持续发展(如 Vue 3 对 TypeScript 的更好支持、Pinia 替代 Vuex),保持对新特性的关注,才能在前端领域持续成长。

http://www.dtcms.com/a/553804.html

相关文章:

  • 高效稳定的命理测算平台:基于Linux+Nginx+PHP+MySQL的技术架构解析
  • 威海做网站哪家好西数网站助手
  • 企业商旅平台推荐:合思——全流程合规管控与生态协同标杆
  • 专业电商网站开发自己做图网站
  • 【flutter报错:Build failed due to use of deprecated Android v1 embedding.】
  • git 命令里的存档和检出的区别
  • 杰理芯片SDK-杰理SDK工程框架介绍
  • 家教中介网站怎么做学员引流用万网做网站
  • C# TaskCompletionSource.SetResult 用法详解
  • 网站建设模板html网站开发工程师岗位职责要求
  • 【Linux network和NetworkManager双网卡主备模式绑定】
  • SSO 单点登录
  • Linux 中如何查看系统的位数
  • 云南建设企业网站修改wordpress首页缩略图尺寸
  • 网站的投票系统怎么做wordpress文章类模板
  • AI智能体如何让用户洞察更简单、更快速、更精准
  • 离线测试与在线测试
  • linux安装kafka
  • 13. React中为什么使用setState
  • 电力电子技术 第十章——可控整流器
  • 高端网站建设seo电子商务网站建设携程
  • 知名网站制作全包19寸 网站做多大
  • MoE (Mixture of Experts)
  • 福建省城乡建设厅网站wordpress演示地址转换短网址
  • 实验:服务端建立nfs服务 客户端挂载该服务
  • 大数据分析与应用实验报告(黑龙江大学)
  • 网站整体结构企业邮箱如何查询
  • GRUB配置文件解析与启动流程详解
  • 静态 IP 深度用户体验手记:Cliproxy 稳定性与便捷性实测
  • 基于Springboot + vue3实现的药材中药资源共享平台