Vue2学习第一天

Vue2 学习第一天

1. 什么是 vue?

Vue 是一套用于构建用户界面的渐进式框架

2. vue 历史

vue 是在 2013 年创建的,vue3 是 2020 出现的,现在主要是用 vue2,创新公司用的是 vue3

vue 的作者是尤雨溪,vue 的搜索热度比 react 更高,国内 vue 用的人更多,国外的用 react 多。

3. vue 学习的内容

image.png

注:标黄是学习的内容

今天学习:常用指令,事件,生命周期,计算属性,watch

4. Vite 构建 Vue 项目

  • 在 cmd 中输入以下代码,构建 vue 项目。
pnpm create vue@2
cd vue_demo //进入vue_demo文件夹
pnpm install //下载相关的依赖包(下载别人写的代码)
pnpm dev //打开终端,进入网页

小 tips:如果下载很慢,可以用 ctrl+c 进行中断,重下;也可以切换淘宝源来下载。

  • 在终端输入**pnpm dev**打开终端

vue初始化界面

  • 以下是 vue 的目录结构介绍

vue文件

可以下载vetur插件,可以进行代码提示。

5. Vite 配置文件说明

import legacy from "@vitejs/plugin-legacy";
import vue2 from "@vitejs/plugin-vue2";

@的含义:@这里是代替了src路径。

6. main.js 文件说明

// import 就是引入文件
import Vue from "vue";
// App是我们的根组件
import App from "./App.vue";
import "./assets/main.css";// h函数就是帮助我们渲染页面的函数
new Vue({el: "#app",render: (h) => h(App),
});

7. Vue 文件总结

vue 文件主要由templatescriptstyle组成。

<template><div></div>
</template><script>
export default {name: "",
};
</script><style scoped></style>
  • template 模板用法

    template 是我们的视图,可以在里面写 html

    <template><div></div>
    </template>
    
  • 绑定事件

    @click叫做指令 v-on:click ,@是 v-on 的简写 v-on的意思就是触发一个事件 ,使用**v-on:xxx**或 **@xxx**绑定事件,其中 xxx 是事件名;addNum就是具体的事件函数。

    <button @click="addNum">+1</button>
    
  • 大胡子语法

    {{ }}大胡子语法,大胡子里面可以放我们data中的变量

    <span>{{ num }}</span>
    
  • data 数据源

    • data 是我们的数据源,vue 会对 data添加监听,能够监听到 data 中数据的变化,然后触发视图更新
    • data 写法比较奇怪,是一个函数,函数返回一个对象,对象中的数据才是我们的数据源
    export default {data() {return {num: 0,};},
    
  • methods 配置函数

    • methods 就是我们的事件处理中心,所有的函数都放在里面
    • methods 中配置的函数,不要用箭头函数!否则 this 就不是 vm 了
    • methods 中配置的函数,都是被 Vue 所管理的函数,this 的指向是vm组件实例对象
      methods: {addNum() {console.log(this);this.num++;},},
    
  • 整体 vue 文件

    <template><div id="test"><button @click="addNum">+1</button><span>{{ num }}</span></div>
    </template><script>
    export default {data() {return {num: 0,};},methods: {addNum() {console.log(this);this.num++;},},
    };
    </script><style>
    #test {margin: auto;
    }
    </style>
    

QQ录屏20240215102051 -original-original

8. v-if 条件渲染

  • v-if

    • 写法:

      • v-if="表达式"

      • v-else-if="表达式"

      • v-else="表达式"

    • 适用于:切换频率较低的场景。

    • 特点:直接通过删除 DOM 元素来控制显隐。

    • 注意:v-if可以和v-else-ifv-else一起使用,但要求结构不能被“打断”。

  • v-show

    • 写法:v-show="表达式"
    • 适用于:切换频率较高的场景。
    • 特点:不展示的 DOM 元素未被移除,仅仅是使用样式**display:none**隐藏掉

v-if 和 v-show 的区别:

  1. 需要频繁操作 DOM 元素显隐的时候,用 v-show 性能会更好
  2. 使用v-if的时,元素可能无法获取到,而使用v-show一定可以获取到。
<template><div id="wrapper"><button v-on:click="toggle">toggle</button><p v-if="isShow">hello world</p></div>
</template><script>
export default {data() {return {isShow: true,};},methods: {toggle() {this.isShow = !this.isShow;},},
};
</script><style></style>

QQ录屏20240215102258 -original-original

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

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

相关文章

基于HTML5实现动态烟花秀效果(含音效和文字)实战

目录 前言 一、烟花秀效果功能分解 1、功能分解 2、界面分解 二、HTML功能实现 1、html界面设计 2、背景音乐和燃放触发 3、燃放控制 4、对联展示 5、脚本引用即文本展示 三、脚本调用及实现 1、烟花燃放 2、燃放响应 3、烟花canvas创建 4、燃放声音控制 5、实际…

鸿蒙开发系列教程(十八)--页面内动画(1)

页面内的动画 显示动画 语法&#xff1a;animateTo(value: AnimateParam, event: () > void): void 第一个参数指定动画参数 第二个参数为动画的闭包函数。 如&#xff1a;animateTo({ duration: 1000, curve: Curve.EaseInOut }, () > {动画代码}&#xff09; dura…

Excel导入预览与下载

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Excel导入预览与下载 preview Controller PostMapping("preview")ApiOperation("上传拒付预警预览")public Result<List<ResChargebackWa…

Linux系统编程(四)进程

一、进程的产生&#xff08;fork&#xff09; fork(2) 系统调用会复制调用进程来创建一个子进程&#xff0c;在父进程中 fork 返回子进程的 pid&#xff0c;在子进程中返回 0。 #include <sys/types.h> #include <unistd.h>pid_t fork(void); fork 后子进程不继…

【MySQL】高度为2和3时B+树能够存储的记录数量的计算过程

文章目录 题目答案高度为2时的B树高度为3时的B树总结 GPT4 对话过程 题目 InnoDB主键索引的Btree在高度分别为 2 和 3 时&#xff0c;可以存储多少条记录&#xff1f; 答案 高度为2时的B树 计算过程&#xff1a; 使用公式 ( n 8 ( n 1 ) 6 16 1024 ) (n \times 8 …

一文搞懂“什么是双亲委派”

文章目录 双亲委派介绍类加载器介绍类加载流程验证自定义类加载器为什么要设计这种机制 提前声明&#xff1a;以下介绍都是基于jdk9之前版本的双亲委派机制&#xff0c;jdk9及之后版本双亲委派会有变化&#xff0c;不在本篇介绍。 双亲委派介绍 双亲委派机制&#xff08;Pare…

[Vue warn]: Duplicate keys detected: ‘1‘. This may cause an update error.

[Vue warn]: Duplicate keys detected: ‘1‘. This may cause an update error.——> Vue报错&#xff0c;key关键字不唯一&#xff1a; 解决办法&#xff1a;修改一下重复的id值&#xff01;&#xff01;&#xff01;

并发CPU伪共享及优化

目录 伪共享 解决 伪共享 缓存系统中是以缓存行&#xff08;cache line&#xff09;为单位存储的。缓存行是2的整数幂个连续字节&#xff0c;一般为32-256个字节。最常见的缓存行大小是64个字节。当多线程修改互相独立的变量时&#xff0c;如果这些变量共享同一个缓存行&am…

459. Repeated Substring Pattern( 重复的子字符串)

问题描述 给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 问题分析 如果一个字符串s能够由其子字符串重复多次构成&#xff0c;那么这个子字符串的长度 l l l一定是字符串s长度 L L L的因子&#xff0c;即 L / l z ( z ∈ 整数 ) L/lz …

【Linux学习】线程池

目录 23.线程池 23.1 什么是线程池 23.2 为什么需要线程池 23.3 线程池的应用场景 23.4 实现一个简单的线程池 23.4.1 RAII风格信号锁 23.4.2 线程的封装 23.4.3 日志打印 22.4.4 定义队列中存放Task类任务 23.4.5 线程池的实现(懒汉模式) 为什么线程池中需要有互斥锁和条件变…

云备份项目:在云端保护您的数据【二、开发】

☘️过度的信息对一个过着充实生活的人来说&#xff0c;是一种不必要的负担☘️ 文章目录 前言工具类实现文件实用工具类代码实现 Json实用工具类代码实现 服务端单例配置类系统配置信息单例配置类 数据管理类数据信息数据管理 热点管理类业务处理类 客户端数据管理类文件备份类…

Pytest测试技巧之Fixture:模块化管理测试数据

在 Pytest 测试中&#xff0c;有效管理测试数据是提高测试质量和可维护性的关键。本文将深入探讨 Pytest 中的 Fixture&#xff0c;特别是如何利用 Fixture 实现测试数据的模块化管理&#xff0c;以提高测试用例的清晰度和可复用性。 什么是Fixture&#xff1f; 在 Pytest 中&a…