山西农业大学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 总结
相关推荐
Myli_ing26 分钟前
HTML的自动定义倒计时,这个配色存一下
前端·javascript·html
dr李四维44 分钟前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
I_Am_Me_1 小时前
【JavaEE进阶】 JavaScript
开发语言·javascript·ecmascript
雯0609~1 小时前
网页F12:缓存的使用(设值、取值、删除)
前端·缓存
℘团子এ1 小时前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
学习前端的小z1 小时前
【前端】深入理解 JavaScript 逻辑运算符的优先级与短路求值机制
开发语言·前端·javascript
星星会笑滴1 小时前
vue+node+Express+xlsx+emements-plus实现导入excel,并且将数据保存到数据库
vue.js·excel·express
前端百草阁2 小时前
【TS简单上手,快速入门教程】————适合零基础
javascript·typescript
彭世瑜2 小时前
ts: TypeScript跳过检查/忽略类型检查
前端·javascript·typescript
FØund4042 小时前
antd form.setFieldsValue问题总结
前端·react.js·typescript·html