山西农业大学20241025

06-VUE

    • [一. 生命周期](#一. 生命周期)
      • [1. 概念](#1. 概念)
      • [2. 生命周期的钩子函数](#2. 生命周期的钩子函数)
    • [二. 工程化开发和脚手架](#二. 工程化开发和脚手架)
      • [1. 开发vue的两种方式](#1. 开发vue的两种方式)
      • [2. 脚手架 Vue CLI](#2. 脚手架 Vue CLI)
      • [3. 使用步骤](#3. 使用步骤)
      • [4 . 项目目录介绍](#4 . 项目目录介绍)
        • [4.1 项目目录](#4.1 项目目录)
        • [4.2 总结](#4.2 总结)

一. 生命周期

1. 概念

VUE生命周期: 就是vue实例从创建销毁的整个

生命周期经历了四个阶段: ①创建 ②挂载 ③ 更新 ④销毁

  • ①创建: 创建响应式数据
  • ②挂载: 渲染模板
  • ③更新; 修改数据,更新模版
  • ④销毁: 销毁VUE实例

2. 生命周期的钩子函数

Vue生命周期过程中, 会自动执行一些函数, 被称为 [生命周期钩子] --> 让开发者可以在 [特定阶段]运行自己的代码

js 复制代码
<div id="app">
      <h1>{{title}}</h1>
      <div>
        <button @click="count--">-</button>
        <span>{{count}}</span>
        <button @click="count++">+</button>
      </div>
      <a href="./00_Vue模版.html" target="_blank">跳转</a>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.js"></script>
    <script>
      let app = new Vue({
        el: '#app',
        data: {
          title: '计数器',
          count: 100,
        },
        // 1.创建阶段(准备数据)
        beforeCreate() {
          console.log('beforeCreate响应式数据准备好之前:', this.count);
        },
        created() {
          console.log('created响应式数据准备好之后:', this.count);
          // this.数据名 = 请求回来的数据
          // 可以发送初始化渲染的请求
        },
        // 2. 挂载阶段(渲染模板)
        beforeMount() {
          console.log(
            'beforeMount 模板渲染之前:',
            document.querySelector('h1').innerHTML
          );
        },
        mounted() {
          console.log(
            'mounted 模板渲染之后:',
            document.querySelector('h1').innerHTML
          );
          // 可以开始操作DOM
        },
        // 3. 更新阶段(修改数据-更新视图)
        beforeUpdate() {
          console.log(
            'beforeUpdate 数据修改了,视图还没更新:',
            document.querySelector('span').innerHTML
          );
        },
        updated() {
          console.log(
            'Updateed 数据修改了,视图已经更新:',
            document.querySelector('span').innerHTML
          );
        },
        // 4. 卸载阶段
        beforeDestroy() {
          console.log('beforeDestory,卸载前');
          console.log('清除掉一些vue以外的资源占用, 定时器, 延时器...');
        },
        destroyed() {
          console.log('destoryed 卸载后');
        },
      });
      // 定时器 -- vue实例外
      setInterval(() => {
        app.$destroy();
      }, 1000);
    </script>

二. 工程化开发和脚手架

1. 开发vue的两种方式

  • 核心包传统开发模式: 基于html,css,js 文件,直接引入核心包, 开发VUE
  • 工程化开发模式 : 基于构建工具(例如: webpack) 的环境开发vue

    工程化开发模式的优点:
  • 提高编码效率, 比如使用js新语法, Less/sass,TypeScripte 等语句通过webpack编译成浏览器可以识别的ES3,ES5,CSS等
    工程化开发模式的缺点:
  • webpack配置不简单
  • 雷同的基础配置
  • 缺乏统一标准

为了解决以上问题, 所以我们需要一个工具, 生成标准化的配置

2. 脚手架 Vue CLI

Vue CLI: 是VUE官方提供的一个全局命令工具

可以帮助我们快速创建一个开发VUE项目的标准化基础架子; [集成webpack配置]

优势:

  • 开箱即用, 零配置
  • 内部babel的工具
  • 标准化的webpack配置

3. 使用步骤

  1. 全局安装脚手架(只需要安装一次即可) npm i @vue/cli -g
  2. 查看vue/cli版本: vue --version
  3. 创建项目框架: vue create project-name (项目名不能是中文)
  4. 启动项目: npm run serve (命令不固定, 找package.json)

4 . 项目目录介绍

4.1 项目目录

将整个项目作为根目录直接打开 : 直接就是项目名

虽然脚手架目录文件很多, 但是目前只需要认识三个文件即可

  • main.js : 入口文件
  • App.vue : App根组件
  • index.html : 模板文件

index.html

html 复制代码
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <!-- 兼容: 给不支持js的浏览器一个提示 -->
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app">
      <!-- 工程化开发模式中, 这里不再直接编写模板语法, 通过App.vue提供结构渲染 -->
    </div>
    <!-- built files will be auto injected -->
  </body>
</html>

main.js

js 复制代码
// 此文件的核心作用:导入App.vue,基于App.vue创建的结构渲染index.html

// 引入Vue 核心包
import Vue from 'vue'
// 导入App.vue的根组件
import App from './App.vue'

//提示: 当前处于什么环境(开发环境/生产环境)
//true: 表示开发环境
Vue.config.productionTip = false

// 创建实例,提供render方法, 基于App.vue创建结构,渲染index.html

new Vue({
  // el: '#app', //el也可以写, 与$mount('#app')作用一致,用于指定Vue所管理的容器
  render: h => h(App),

  // 完整写法:
  // createElement:形参
  // render:(createElement)=>{
  //   return createElement(App)
  // }
}).$mount('#app')

App.vue

js 复制代码
<template>
  <div class="box">我是首页</div>
</template>

<script>
export default {

}
</script>

<style>
.box {
  width: 450px;
  height: 200px;
  background: pink;
  font-size: 22px;

}
</style>
4.2 总结
相关推荐
每天都要喝奶茶20 分钟前
vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题
前端·vue.js·uni-app
Southern Wind21 分钟前
H5页面在线预览pdf
javascript·pdf
May_Xu_22 分钟前
vue3+less使用主题定制(多主题定制)可切换主题
前端·javascript·vue.js·vue·less·css3
qq_4275060822 分钟前
less解决function中return写法在浏览器被识别成Object导致样式失败的问题
前端·css·less
Elastic 中国社区官方博客28 分钟前
将你的 Kibana Dev Console 请求导出到 Python 和 JavaScript 代码
大数据·开发语言·前端·javascript·python·elasticsearch·ecmascript
Python大数据分析37 分钟前
JetPack Compose安卓开发之底部导航Tabbar
android·vue.js·elementui
闲人陈二狗39 分钟前
vue3中的pinia的使用方法
开发语言·javascript·ecmascript
北京_宏哥1 小时前
《最新出炉》系列入门篇-Python+Playwright自动化测试-41-录制视频
前端·python·测试
小华同学ai1 小时前
jsMind:炸裂项目,用JavaScript构建的思维导图库,GitHub上的热门开源项目
javascript·开源·github
小霖家的混江龙1 小时前
Vite 打包 H5 如何注入版本号
前端·vite