Vue3知识总结-1

前面学习一段时间的前端,但是没有进行过太多的练习,并且对于里面一些重要的知识点也没有去着重的记忆,所以打算在学习Vue3的时候,做一些笔记,方便后面翻看。这个笔记会对于学习一些做一些,而不是一个整体的部分,整个学习过程也都是跟着视频来做的。

为什么选择Vue

Vue是什么

渐进式的JS框架,易用易学,性能出色,使用场景丰富

为什么学习

  1. 最火的

  2. 企业中要求

  3. 可以提升开发体验

  4. ……

Vue简介

提供了一套声明式,组件化的编程模型

渐进式框架

Vue是一个框架也是生态,覆盖了很多前端开发请求。Vue设计非常注重灵活性和“可以被逐步集成”这个特点。可以用不同的方式使用Vue:

  • 无需构建,渐进式增强静态的HTML

  • 任何页面作为Web Components嵌入

  • 单页应用SPA

  • 全栈/服务端渲染(SSR)

  • 开发桌面端等

Vue版本

目前,开发中有2和3,老项目一般是Vue2,新项目是Vue3

Vue API风格

有两种书写风格:选项API和组合式API

选项式API

 
<script>
export default {
  data(){
    return {
      count: 0
    }
  },
  methods:{
    increment() {
      this.count += 1;
    }
  },
  mounted() {
    console.log(`选项式AIP: The initial count is &{this.count}.`)
  }
}
</script>
<template>
  <button @click="increment">选项式AIP: Count is : {{count}}</button>/
</template>

组合式API

 
<script setup >
import {ref, onMounted} from 'vue'
const count = ref(0)
function increment(){
  count.value++
}
onMounted(() =>{
  console.log(`组合式AIP: The initial count is &{this.count}.`)
})
</script>

<template>
  <button @click="increment">组合式API:Count is : {{count}}</button>/
</template>

Vue开发前准备

首先需要安装Node.js,然后配置一下就好了。

下面的是运行整个项目

 npm init vue@latest  创建项目
 npm install / cnpm install 安装依赖目录文件夹
 npm run dev   运行整个项目

Vue项目目录结构

模版语法

文本差值

最基本的数据绑定形式是文本差值,使用的是“Mustache”语法(及大括号)

 
<template>
  <h3> 模版语法</h3>
  <p>{{msg}}</p>
</template>

<script>
export default {
  data(){
    return{
      msg:"神奇的语法"
    }

  }
}
</script>

使用js表达式

每个绑定仅仅支持单一表达式,也就是一段能够被求值的代码,

 
<template>
  <h3> 模版语法</h3>
  <p>{{msg}}</p>
  <p>{{number + 1}}</p>
  <p>{{ok}}</p>
  <p>{{ok ? 'yes': 'no'}}</p>
  <p>{{msg.split("").reverse().join()}}</p>
  <!--  <p>{{var a = 1}}/p>-->
  <!--  <p>{{if (number > 10) {return 0}}}</p>/-->
</template>

<script>
export default {
  data(){
    return{
      msg:"神奇的语法",
      number: 122,
      ok:true,
    }

  }
}
</script>

原始HTML

双大括号将会将数据差值为纯文本,而不是HTML,如果想插入HTML,需要使用v-html指令

 
<template>
  <p v-html="rawHtml"></p>
</template>

<script>
export default {
  data(){
    return{
      rawHtml:"<a href='www.baidu.com'>百度</a>"
    }

  }
}
</script>

属性绑定

 

<template>
  <div v-bind:id="msg" v-bind:class="dynamicClass" >测试</div>
</template>

<script>
export default {
  data(){
    return{
      msg:"active",
      dynamicClass: "appclass",
    }
  }
}

</script>
<style>
.appclass{
  color:red;
  font-weight: bold;
  font_size: 30px;
}
</style>

v-bind指令标识Vue将元素id attribute与dynamicId组件属性保持一致,如果绑定的值是null或者undefind,那么该attribute将会从渲染的元素上移除

简写

<div :id="msg" :class="dynamicClass" >测试</div>

布尔值Attribute

根据true/false来决定attribute是否存在于该元素上,disabled是常见的

动态绑定多个值


<template>
  <button :disabled="isButtonDisabled">Button</button>
  <div v-bind="objectOfAttrs">测试问题呢</div>
</template>

<script>
export default {
  data(){
    return{
      dynamicClass: "appclass",
      isButtonDisabled:false,
      objectOfAttrs:{
        class: "appclass",
        dynamilId: "appid",
      }
    }
  }
}

</script>
<style>
.appclass{
  color:red;
  font-weight: bold;
  font_size: 30px;
}
</style>

条件渲染

类似于条件语句

V-if 用于条件性的渲染,为真的时候就渲染,假的时候不渲染

V-else 可以设计为多个分块

V-show 按照条件显示一个元素的指令

下面是上面这些指令的一些代码示例:

<template>
  <h3>条件渲染</h3>
  <div v-if="flag"> 你们看见我不</div>
  <div v-else> 你还是看看我吧</div>
  <div v-if="type ==='A'">A</div>
  <div v-else-if="type ==='B'">B</div>
  <div v-else-if="type ==='C'">C</div>
  <div v-else>Not a/b/c</div>
  <div v-show="flag">Not a/b/c</div>
</template>
<script>
  export default {
    data(){
      return {
        flag:true,
        type: "D",
      }
    }
  }
</script>

v-if 和v-show

v-ifv-show 是 Vue.js 中常用的两个指令,用于条件性地显示或隐藏元素,但它们有一些不同之处。

  1. v-if:

    1. v-if 是一种条件渲染指令,用于根据表达式的真假条件来决定是否渲染 DOM 元素。

    2. 如果条件为真,元素将被渲染到 DOM 中;如果条件为假,元素将从 DOM 中移除。

    3. 当条件为假时,Vue.js 不会渲染或管理该元素及其子元素,因此对性能有一定的提升。

示例:

<div v-if="isVisible"This will only be rendered if isVisible is true</div>
  1. v-show:

    1. v-show 也用于根据条件显示或隐藏元素,但与 v-if 不同,它只是简单地切换 CSS 的 display 属性,而不是添加或移除元素。

    2. 元素始终被渲染到 DOM 中,只是通过 CSS 控制其显示或隐藏。

    3. 当条件为假时,元素的样式为 display: none;,因此元素仍然存在于 DOM 中,可能会对性能产生一定的影响。

示例:

<div v-show="isVisible"This will be rendered but may not be visible</div>

选择使用 v-if 还是 v-show 取决于你的具体需求:

  • 如果你希望在条件为假时从 DOM 中完全移除元素,可以使用 v-if

  • 如果你希望保留元素的 DOM 结构并且只是简单地控制其显示或隐藏状态,可以使用 v-show

列表渲染

使用v-for指令去渲染一个数组渲染一个列表,需要使用item in items这样的特殊语法

<template>
  <h3>列表渲染</h3>
  <p v-for="item in names">{{ item }}</p>
</template>
<script>
  export default {
    data(){
      return{
        names:["实验室","大学","小学"]
      }
    }
  }
</script>

复杂数据

大多数情况下,渲染的都是网络请求,json格式

<template>
  <h3>列表渲染</h3>
  <p v-for="item in result">
    <p>{{item.title}}</p>
<!--   / <img src="item.avator">-->
  </p>
</template>
<script>
  export default {
    data() {
      return {
        result: [
          {
            "id": 123,
            "title": "中药",
            "avator": "http://^",
          },
          {
            "id": 124,
            "title": "西药",
            "avator": "http://^",
          },
          {
            "id": 125,
            "title": "中西药",
            "avator": "http://^",
          },
        ]

      }
    }
  }
</script>

V-for 可以有数组的下标,并且可以使用of来代替in

<p v-for="(item, index) in names">{{ item}}-{{index}}</p>

V-for与 对象

可以用来遍历对象

<template>
  <h3>列表渲染</h3>

  <p v-for="(value, key, index) of user">{{index}}-{{key}}-{{value}}</p>
</template>
<script>
  export default {
    data() {
      return{
        user:{
          name: "123",
          age: 13,
        }
      }
    }
  }
</script>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Maven打包异常javac <options> <source files>

今天发现Maven打包时候出现的异常&#xff0c;异常信息如下 一开始以为是什么代码问题呢&#xff0c;但是奇怪的是项目是可以正常运行的。也就说代码没问题。 那为什么Maven 打包编译就报错&#xff1f; 首先查看Maven 配置&#xff0c;配置好像也没有什么异常的地方。 再看…

Spring Boot | Spring Boot 整合“ 邮件任务“ 实现

目录: Spring Boot 整合" 邮件任务" 实现 :一、发送 "纯文本邮件" :(1) 添加 "邮件服务" 依赖启动器(2) 添加 "邮件服务" 配置信息(3) 定制 "邮件发送服务"(4) "纯文本" 邮件发送 测试效果 二、发送 带 "附件…

DSOX4054A 示波器:500 MHz,4 个模拟通道

DSOX4054A 示波器 500 MHz 4 个模拟通道 100 万波形/秒捕获率 4000 X 系列拥有一系列引以为傲的配置&#xff0c;包括采用了电容触摸屏技术的 12.1 英寸显示屏、InfiniiScan 区域触摸触发、100 万波形/秒捕获率、MegaZoom IV 智能存储器技术和标配分段存储器。 主要特点 —…

信息技术自主可控的意义,针对国产化替换,服务器虚拟化或比公有云更具优势

我们之前在文章《博通收购VMware后&#xff0c;经销商和用户如何应对&#xff1f;新出路&#xff1a;虚拟化国产替代&#xff0c;融入信创云生态》中提到&#xff1a; 从信创整体发展和政策标准来看&#xff0c;供应商必须满足两个条件&#xff1a;一是融入国产信息技术生态&am…

Win10 WSL2 Ubuntu 22.04 配置深度学习环境

文章目录 WSL安装Anaconda下载Anaconda安装包安装配置conda命令conda换国内源conda初始化shell环境conda init手动源激活脚本&#xff1a; 安装Windows上的NVIDIA GPU驱动WSL安装CUDA Toolkit安装12.1版本环境配置报错1报错2 内存不足导致安装崩溃问题描述问题分析问题解决 WSL…

PHP 框架安全:ThinkPHP 序列 漏洞测试.

什么是 ThinkPHP 框架. ThinkPHP 是一个流行的国内 PHP 框架&#xff0c;它提供了一套完整的安全措施来帮助开发者构建安全可靠的 web 应用程序。ThinkPHP 本身不断更新和改进&#xff0c;以应对新的安全威胁和漏洞。 目录&#xff1a; 什么是 ThinkPHP 框架. ThinkPHP 框架…

C++基础中的存储类别

存储的类别是变量的属性之一&#xff0c;C语言定义了4种变量的存储类别&#xff0c;分别是auto变量、static变量、register变量和extern变量。以下重点介绍这几种类型。 一、auto变量 auto变量是C默认的存储类型。函数内未加存储类型说明的变量均被称为自动变量&#xff0c;即…

深入理解Django:中间件与信号处理的艺术

title: 深入理解Django&#xff1a;中间件与信号处理的艺术 date: 2024/5/9 18:41:21 updated: 2024/5/9 18:41:21 categories: 后端开发 tags: Django中间件信号异步性能缓存多语言 引言 在当今的Web开发领域&#xff0c;Django以其强大的功能、简洁的代码结构和高度的可扩…

Vue 中动态与静态处理 Element UI/Element Plus 组件禁用状态样式

目录 一、静态样式修改 - 使用 ::v-deep 穿透组件样式二、选择器的优先级和匹配顺序三、动态添加样式 - 使用 Vue 实例属性&#xff08;非推荐&#xff09;四、区别总结五、应用场景总结 本文主要探讨在 Vue.js 项目中&#xff0c;特别是搭配 Element UI 或 Element Plus 组件库…

C语言队列的含义与队列数据操作代码详解!

引言&#xff1a;于本篇博客当中&#xff0c;我们将讲到数据结构——队列的有关知识。而对于这次的队列&#xff0c;我们将会在单链表的基础上实现。 更多有关C语言和数据结构知识详解可前往个人主页&#xff1a;计信猫 一&#xff0c;队列的含义 队列是一种特殊的线性表&#…

一文了解spring事务特性

推荐工具 objectlog 对于重要的一些数据&#xff0c;我们需要记录一条记录的所有版本变化过程&#xff0c;做到持续追踪&#xff0c;为后续问题追踪提供思路。objectlog工具是一个记录单个对象属性变化的日志工具,工具采用spring切面和mybatis拦截器相关技术编写了api依赖包&a…

Vue2 组件通信方式

props/emit props 作用&#xff1a;父组件通过 props 向子组件传递数据parent.vue <template><div><Son :msg"msg" :pfn"pFn"></Son></div> </template><script> import Son from ./son export default {name: …

面向对象进阶——内部类

1、初始内部类 什么是内部类&#xff1f; 类的五大成员&#xff1a; 属性、方法、构造方法、代码块、内部类 在一个类的里面&#xff0c;再定义一个类。 举例&#xff1a;在A类大的内部定义B类&#xff0c;B类就被称为内部类 public class Outer{ 外部类 public …

流媒体学习之路(WebRTC)——GCC中ProbeBitrateEstimator和AcknowledgedBitrateEstimator的大作用(7)

流媒体学习之路(WebRTC)——GCC中ProbeBitrateEstimator和AcknowledgedBitrateEstimator的大作用&#xff08;7&#xff09; —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标&#xff1a;可以让大家熟悉各类Qos能力、带宽估计能力&a…

抛弃英特尔,采用自研M4芯片,苹果公司的iPad Pro有什么好?

【科技明说 &#xff5c; 科技热点关注】 看到​苹果公司最新发布的M4芯片iPad Pro&#xff0c;我的眼前一亮&#xff0c;“其是否又该更换新pad了&#xff1f;”在这样的扪心自问之中&#xff0c;我发现了M4芯片的iPad Pro几大好处。 一是性能更好&#xff0c;M4芯片采用第二…

系统Cpu利用率降低改造之路

系统Cpu利用率降低改造之路 一.背景 1.1 系统背景 该系统是一个专门爬取第三方数据的高并发系统&#xff0c;该系统单台机器以每分钟400万的频次查询第三方数据&#xff0c;并回推给内部第三方系统。从应用类型上看属于IO密集型应用,为了提高系统的吞吐量和并发&#xff0c;…

解决电脑睡眠后,主机ping不通VMware虚拟机

文章目录 问题解决方法方法一方法二注意 问题 原因&#xff1a;电脑休眠一段时间&#xff0c;再次打开电脑就ping不通VMware虚拟机。 解决方法 方法一 重启电脑即可&#xff0c;凡是遇到电脑有毛病&#xff0c;重启能解决90%问题。但是重启电脑比较慢&#xff0c;而且重启…

system函数和popen函数

system函数 #include <stdlib.h> *int system(const char command); system函数在linux中的源代码&#xff1a; int system(const char * cmdstring) {pid_t pid;int status;if(cmdstring NULL){return (1);}if((pid fork())<0){status -1;}else if(pid 0){ //子…

Spring MVC(三) 参数传递

1 Controller到View的参数传递 在Spring MVC中&#xff0c;把值从Controller传递到View共有5中操作方法&#xff0c;分别是。 使用HttpServletRequest或HttpSession。使用ModelAndView。使用Map集合使用Model使用ModelMap 使用HttpServletRequest或HttpSession传值 使用HttpSe…

Vue-Cli脚手架项目的搭建【新手快速入手】

目录 一、Vue CLI脚手架简介☺ 1.Node.js前置环境的安装 2.安装npm管理器 3.安装淘宝镜像(cnpm) 二、安装vue-cli 1. 版本号查看 2.旧版本卸载 3.新版本安装 4.检查 三、Vue项目的搭建 &#x1f4cc;进入Vue项目管理器 ★命令方式创建 若localhost拒绝访问怎么办&…