vue3 笔记 - 声明式 一

官网:Vue.js - 渐进式 JavaScript 框架 | Vue.js

vue3编写有声明式和响应式。该文章仅记录声明式。vue3声明式与vue2相同。

一、生命周期

  1. 创建之前 beforeCreate()
  2. 已创建 created()
  3. 挂载之前 beforeMount()
  4. 已挂载 mounted()
  5. 销毁之前 beforeUnmount()
  6. 已销毁 unmounted()

二、模板语法

//文本插值 
{{ value }}//原始html 
<p v-html="value"></p>//属性绑定
<p v-bind:id="value"></p>
<p :id="value"></p>//布尔型
<button :disabled="isButtonDisabled">Button</button>//绑定多个值
const objectOfAttrs = {id: 'container',class: 'wrapper'
}
<div v-bind="objectOfAttrs"></div>//JavaScript 表达式 
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
<div :id="`list-${id}`"></div>//函数调用
<time :title="toTitleDate(date)" :datetime="date">{{ formatDate(date) }}
</time>

2.1 内置指令

  1. v-text 更新元素的文本内容
  2. v-html 更新元素的innerhtml
  3. v-show 基于表达式值的真假性,来改变元素的可见性。页面渲染消耗多,适合频繁切换显示。
  4. v-if 基于表达式值的真假性,来条件性地渲染元素或者模板片段。元素切换消耗多。
  5. v-else 表示 v-ifv-if / v-else-if 链式调用的“else 块”。
  6. v-else-if 表示 v-if 的“else if 块”。可以进行链式调用。
  7. v-for 基于原始数据多次渲染元素或模板块。
  8. v-on 给元素绑定事件监听器。缩写@。
  9. v-bind 动态的绑定一个或多个 attribute,也可以是组件的 prop。缩写:
  10. v-model 在表单输入元素或组件上创建双向绑定。
  11. v-slot 用于声明具名插槽或是期望接收 props 的作用域插槽。
  12. v-pre 跳过该元素及其所有子元素的编译。
  13. v-once 仅渲染元素和组件一次,并跳过之后的更新。
  14. v-memo 缓存一个模板的子树。仅用于性能至上场景中的微小优化,应该很少需要。最常见的情况可能是有助于渲染海量 v-for 列表。
  15. v-cloak 用于隐藏尚未完成编译的 DOM 模板。
<div v-for="item in list" :key="item.id" v-memo="[item.id === selected]"><p>ID: {{ item.id }} - selected: {{ item.id === selected }}</p><p>...more child nodes</p>
</div>[v-cloak] {display: none;
}template<div v-cloak>{{ message }}
</div>

三、变量定义及使用

声明式定义和响应式不同,代码如下。变量是在函数中返回。

<template>
<p>{{ msg }}</p>
<div><ul><li v-for="(item,index) in list" :key="index">{{ item.value }}</li></ul>
</div> 
<p ></p>
</template>
<script>
export default{name:'Test',data:function(){return{msg:"test",list:[{id:1,value:test1},{id:2,value:test2},{id:3,value:test3},]}},
}
</script>

3.2 计算属性

 在computed中使用变量名作为方法名,可在模板中使用。计算属性也可以定义为方法,在methods中定义,但是计算属性基于它们的响应式依赖进行缓存,只在相关响应式依赖发生改变时它们才会重新求值。

以下代码中计算属性now将不再更新,因为Date.now()不是响应式依赖。

<template>
<div id="example"><p>Original message: "{{ message }}"</p><p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>
</template>
<script>
var vm = new Vue({el: '#example',data: {message: 'Hello'},computed: {// 计算属性的 getterreversedMessage: function () {// `this` 指向 vm 实例return this.message.split('').reverse().join('')},now: function () {return Date.now()}}
})
</script>

3.3 监听

通过 watch 选项提供了一个更通用的方法,来响应数据的变化。

之前使用开源vue后台框架,相同页面不同参数的时候,使用监听处理传过来的参数,便于多个页面显示。

<template>
<div id="watch-example"><p>Ask a yes/no question:<input v-model="question"></p><p>{{ answer }}</p>
</div>
</template>
<script>
var vm = new Vue({el: '#example',data: {question: '',answer:'',},watch: {// 如果 `question` 发生改变,这个函数就会运行question: function (newQuestion, oldQuestion) {this.answer = newQuestion}},
})
</script>

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

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

相关文章

java面试-Dubbo和zookeeper运行原理

远离八股文&#xff0c;面试大白话&#xff0c;通俗且易懂 看完后试着用自己的话复述出来。有问题请指出&#xff0c;有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来&#xff0c;大家一起解决。 java面试题汇总-目录-持续更新中 分布式注册中心和服务调…

Unity中后处理简介

文章目录 前言一、后处理的原理二、我们看一下Unity文档中&#xff0c;内置的后处理前后的效果后处理前&#xff1a;后处理后&#xff1a; 前言 我们在这篇文章中&#xff0c;了解一下Unity中的后处理效果 后期处理概述 一、后处理的原理 在后处理的过程中&#xff0c;我们主…

Java当中常用的算法

文章目录 算法二叉树左右变换数据二分法实现 冒泡排序算法插入排序算法快速排序算法希尔排序算法归并排序算法桶排序算法基数排序算法分治算法汉诺塔问题动态规划算法引子代码实现背包问题 KMP算法什么是KMP算法暴力匹配KMP算法实现 今天我们来看看常用的算法&#xff0c;开干。…

《微信小程序开发从入门到实战》学习四十五

4.4 云函数 云函数是开发者提前定义好的、保存在云端并且将在云端运行的JS函数。 开发者先定义好云函数&#xff0c;再使用微信开发工具将云函数上传到云空间&#xff0c;在云开发控制台中可看到已经上传的云函数。 云函数运行在云端Node.js环境中。 小程序端通过wx.cloud.…

IP地址定位技术为网络安全建设提供全新方案

随着互联网的普及和数字化进程的加速&#xff0c;网络安全问题日益引人关注。网络攻击、数据泄露、欺诈行为等安全威胁层出不穷&#xff0c;对个人隐私、企业机密和社会稳定构成严重威胁。在这样的背景下&#xff0c;IP地址定位技术应运而生&#xff0c;为网络安全建设提供了一…

Python Selenium 自动登入1688

Python Selenium是一个用于自动化Web浏览器操作的库。它提供了一组功能强大的工具和API&#xff0c;可以模拟用户在浏览器中的行为&#xff0c;并执行各种任务&#xff0c;如点击、输入文本、提交表单等。 要使用Python Selenium登录1688网站&#xff0c;需要进行以下步骤&…

iOS微信小程序虚拟支付解决方案

众所周知&#xff0c;在IOS微信小程序不支持虚拟支付&#xff0c;一直是困扰IOS开发者、运营最头疼的问题&#xff0c;主要原因是苹果不允许IOS微信上架这类产品。导致微信小程序的开发者在IOS上都不能支付虚拟商品&#xff0c;虚拟商品包含了虚拟课程、会员、虚拟书等。 那么…

短视频ai剪辑分发矩阵系统源码3年技术团队开发搭建打磨

如果您需要搭建这样的系统&#xff0c;建议您寻求专业的技术支持&#xff0c;以确保系统的稳定性和安全性。 在搭建短视频AI剪辑分发矩阵系统时&#xff0c;您需要考虑以下几个方面&#xff1a; 1. 技术实现&#xff1a;您需要选择适合您的需求和预算的技术栈&#xff0c;例如使…

肖sir__ 项目讲解__项目数据

项目时间&#xff1a; 情况一&#xff1a;项目时间开始到上线的时间&#xff0c;这个时间一般比较长&#xff08;一年&#xff0c;二年&#xff0c;三年&#xff09; 情况二&#xff1a;项目的版本的时间或则是周期&#xff08;1个月&#xff0c;2个月&#xff0c;3个月&…

机器人、智能小车常用的TT电机/310电机/370电机选型对比

在制作智能小车或小型玩具时&#xff0c;在电机选型上一些到各种模糊混淆的概念&#xff0c;以及各种错综复杂的电机参数&#xff0c;本文综合对比几种常用电机的参数及特性适应范围&#xff0c;以便快速选型&#xff0c;注意不同生产厂家的电机参数规则会有较大差异。 普通TT…

论文阅读:PointCLIP: Point Cloud Understanding by CLIP

CVPR2022 链接&#xff1a;https://arxiv.org/pdf/2112.02413.pdf 0、Abstract 最近&#xff0c;通过对比视觉语言预训练(CLIP)的零镜头学习和少镜头学习在2D视觉识别方面表现出了鼓舞人心的表现&#xff0c;即学习在开放词汇设置下将图像与相应的文本匹配。然而&#xff0c;…

【ET8】2.ET8入门-ET框架解析

菜单栏相关&#xff1a;ENABLE_DLL选项 ET->ChangeDefine->ADD_ENABLE_DLL/REMOVE_ENABLE_DLL 一般在开发阶段使用Editor时需要关闭ENABLE_DLL选项。该选项关闭时&#xff0c;修改脚本之后&#xff0c;会直接重新编译所有的代码&#xff0c;Editor在运行时会直接使用最…

免费网页抓取工具大全【附下载和工具使用教程】

在当今信息爆炸的时代&#xff0c;获取准确而丰富的数据对于企业决策和个人研究至关重要。而网页抓取工具作为一种高效获取互联网数据的方式&#xff0c;正逐渐成为大家解决数据需求的得力助手。本文将深入探讨网页抓取工具的种类&#xff0c;并为大家提供简单实用的页面采集教…

(企业项目)SpringBoot3整合校验框架validation

在Spring Boot项目中使用校验框架validation可以让我们更方便地实现数据校验和错误提示。下面是Spring Boot集成校验框架validation的步骤。 添加依赖 在项目的pom.xml文件中添加validation依赖&#xff1a; <dependency><groupId>org.springframework.boot</…

C# 实现Lru缓存

C# 实现Lru缓存 LRU 算法全称是最近最少使用算法&#xff08;Least Recently Use&#xff09;&#xff0c;是一种简单的缓存策略。 通常用在对象池等需要频繁获取但是又需要释放不用的地方。 代码实现的基本原理就是使用链表&#xff0c;当某个元素被访问时&#xff08;Get或…

windows安装protoc、protoc-gen-go、protoc-gen-go-grpc

文章目录 一、 protoc二、protoc-gen-go三、protoc-gen-go-grpc 一、 protoc 1&#xff0c;下载&#xff1a;https://github.com/google/protobuf/releases 下载对应的protoc&#xff0c;注意选择windows 2&#xff0c;下好之后解压就行&#xff0c;然后把bin目录加入到环境…

【异常】浅析异常体系及为什么一定会执行finally块代码

异常体系&#xff1a; &#xff08;1&#xff09;所有异常&#xff08;Exception&#xff09;、错误&#xff08;Error&#xff09;都继承自异常中的基类&#xff1a;Throwable。而异常又可以分为检查异常&#xff08;Checked Exception&#xff09;、非检查异常&#xff08;Un…

msvcp100.dll丢失的常见原因/msvcp100.dll丢失的解决方法分享

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp100.dll丢失”。这个错误提示通常出现在运行某些程序或游戏时&#xff0c;给使用者带来了很大的困扰。那么&#xff0c;究竟是什么原因导致了msvcp100.dll文件的丢失呢&#xff1f;本…

ubuntu22.04在opencv4的基础上安装opencv3

安装opencv4 首先在ubuntu22.04上安装opencv4&#xff0c;可以参考之前的博客ubuntu22.04安装opencv4和opencv_contrib-CSDN博客 安装opencv3 由于有使用opencv3的需求&#xff0c;所以需要继续安装opencv3 ; 安装编译 这里安装的版本是opencv3.4.5&#xff0c;大致安装思…

STM32F1之CAN介绍

目录 ​编辑 1. CAN 是什么&#xff1f; 2. 总线拓扑图 3. CAN 的特点 4. CAN 协议的基本概念 1. CAN 是什么&#xff1f; CAN 是 Controller Area Network 的缩写&#xff08;以下称为 CAN&#xff09;&#xff0c;是 ISO*1 国际标准化的串行通信协议。 在当前的汽车产…