【卷起来】VUE3.0教程-02-模板语法

news2024/11/15 17:50:30

🍁 项目目录结构

在上面的案例中,我们创建出了一个vue项目,项目结构如下:

  • .vscode:vscode工具的配置文件
  • node_modules:Vue 项目的运行依赖文件
  • public:资源文件夹(浏览器图标)
  • src:源码文件夹
  • .gitignore:git忽略文件
  • index.html : 首页,入口HTML文件
  • package.json :属性版本依赖文件
  • README.md :注释文件
  • vite.config.js :VUE的配置文件

🍁 VUE 模板语法

🌾 基础案例

在讲解模板语法之前,我们先将src中components目录下的文件删除,同时将App.vue中的代码删除成如下格式,:

<script >

</script>

<template>

</template>

编写如下代码,并将main.js中的 import './assets/main.css'删掉:

<script >
  export default{
    data(){
      return {
        msg: "vue 我学定了!耶稣也拦不住!"
      }
    }
  }
</script>

<template>
    <h2 style="color: red;">{{msg}}</h2>
  
 </template>

最基本的数据绑定形式是文本插值,它使用的是“Mustache”语法 (即双大括号):

<h2 style="color: red;">{{msg}}</h2>

双大括号标签会被替换为相应组件实例中 msg 属性的值。同时每次 msg 属性更改时它也会同步更新。

运行之后,显示效果:

🌾 原始html

双大括号会将数据解释为纯文本,而不是 HTML。若想插入 HTML,你需要使用 v-html指令:

<script >
  export default{
    data(){
      return {
        msg: "vue 我学定了!耶稣也拦不住!",
        showHtml: "<span style='color:green'>你知道我这几个月是怎么过来的吗?</span>"
      }
    }
  }
</script>

<template>
    <h2 style="color: red;">{{msg}}</h2>
    <p>纯文本:{{showHtml}}</p>
    <p>v-html: <span v-html="showHtml"></span></p>
 </template>

运行效果:

🌾 Attribute绑定

双大括号不能在 HTML attributes 中使用。想要响应式地绑定一个 attribute,应该使用 v-bind指令:


<template>
    <!-- <div id="{{dynamicId}}">我是加皇帝</div> -->
    <div v-bind:id="dynamicId">我是大皇帝</div>
</template>

<script >
  export default{
    data(){
      return {
        "dynamicId":"active"
      }
    }
  }
</script>

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

因为 v-bind 非常常用,我们提供了特定的简写语法:

<div :id="dynamicId"></div>

🌾 布尔型Attribute

布尔型 attribute 依据 true / false 值来决定 attribute 是否应该存在于该元素上。disabled 就是最常见的例子之一。

v-bind 在这种场景下的行为略有不同:

<template>
    <button :disabled="isButtonDisabled">Button</button>
</template>

<script >
  export default{
    data(){
      return {
        isButtonDisabled : true
      }
    }
  }
</script>

当 isButtonDisabled 为真值或一个空字符串 (即 <button disabled="">) 时,元素会包含这个 disabled attribute。而当其为其他假值时 attribute 将被忽略。

🌾 动态绑定多个值

如果你有像这样的一个包含多个 attribute 的 JavaScript 对象:

  const objectOfAttrs = {
    id:"demo",
    class:"demo_class"
  }

通过不带参数的 v-bind,你可以将它们绑定到单个元素上:

<template>
    <button :disabled="isButtonDisabled">Button</button>
    <div v-bind="objectOfAttrs">O(∩_∩)O哈哈</div>
</template>

<script setup>
  const objectOfAttrs = {
    id:"demo",
    class:"demo_class"
  }

</script>

最终展示效果:

🌾 Javascript表达式

Vue 实际上在所有的数据绑定中都支持完整的 JavaScript 表达式:

如下面代码所示:

{{ number + 1 }}

{{ ok ? 'YES' : 'NO' }}

{{ message.split('').reverse().join('') }}

这些表达式都会被作为 JavaScript ,以当前组件实例为作用域解析执行。具体代码如下:

<script >
  export default{
    data(){
      return {
        msg: "vue 我学定了!耶稣也拦不住!",
        showHtml: "<span style='color:green'>你知道我这几个月是怎么过来的吗?</span>",
        // 绑定数字类型
        number:521,
        // 绑定布尔类型
        ok:true,
        // 绑定字符串类型
        message:"甜甜的恋爱"
      }
    }
  }
</script>

<template>
    <!-- 发生运算 -->
    <h3>小甜甜{{number-1}}!</h3>
    <!-- 使用三目运算符 -->
    <h3>你也喜欢我把?{{ok?'YES':'No'}}</h3>
    <!-- 调用方法 -->
    <h3>我们在一起就是->{{message.split('').reverse().join('')}}</h3>
    <h2 style="color: red;">{{msg}}</h2>
    <p>纯文本:{{showHtml}}</p>
    <p>v-html: <span v-html="showHtml"></span></p>
 </template>

🌾指令

指令 (Directives) 是带有 v- 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式 ( v-for 和 v-on 是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。回顾我们在介绍中看到的例子:

<p v-if="seen">现在你看到我了</p>

<script >
  export default{
    data(){
      return {
        seen:true
      }
    }
  }
</script>

这里, v-if 指令将根据表达式 seen 的值的真假来插入/移除 <p> 元素。

🌾 参数

一些指令能够接收一个“参数”,在指令名称之后以冒号表示。例如, v-bind 指令可以用于响应式地更新 HTML attribute:

<a v-bind:href="url"> 看看我是谁? </a>

在这里 href 是参数,告知 v-bind 指令将该元素的 href attribute 与表达式 url 的值绑定。

🌾 数据绑定

Vue中有2中数据绑定的方式:

  • 单向绑定:v-bind 数据只能从data流向页面
  • 双向绑定:v-model 数据不仅能从data流向页面,还可以从页面流向data
<template>
    <div id="root">
        单向绑定:<input type="text" :value="name"><br/>
        双向绑定:<input type="text" v-model="name"><br>
        最终name的值: {{name}}
    </div>
 </template>

<script >
  export default{
    data(){
      return {
        name: "阿良"
      }
    }
  }
</script>

注意:

  • 双向绑定 一般都应用在表单类元素上,如:input、select、textarea等
  • v-model实际上是v-model:value的简写,因为v-model默认收集的就是value值

----------------------------------------------------------------------

​分享不易,耗时耗力,喜欢的同学给个关注和赞吧

承接毕设指导,技术答疑,学习路上想要找私人教练的同学可以私信我

更多学习资料,公众号:墨轩学习网,B站:墨轩大楼

----------------------------------------------------------------------

另:有下图需求的,可以私信我

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

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

相关文章

Leetcode Day18 堆

Python中关于堆的操作 注意, python默认的是最小堆 什么时候想到用堆 A: 流!或者我们只关心k个元素 373 查找和最小的前k对数字 给定两个以 非递减顺序排列 的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff…

Learing——protobuf(一)

目录 前言 一、protobuf的简介 二、编写一个.proto文件 1.选择使用的protobuf版本 2.指定命名空间&#xff08;package&#xff09; 3.定义一个“消息”&#xff08;message&#xff09; 4.定义消息字段 标量类型&#xff1a; 枚举类型(enum): 多选一类型(oneof)&…

论文速读|I-CTRL:通过受限强化学习使人型机器人模仿和控制

论文地址&#xff1a;https://arxiv.org/pdf/2405.08726 I-CTRL&#xff08;Imitation to Control Humanoid Robots Through Constrained Reinforcement Learning&#xff09;是一个旨在解决现有人类运动到人型机器人的转换方法在物理可行性上的不足的框架。该框架通过在非物理…

基础闯关3

一、基础任务 大模型在浮点数大小比较上表现不佳&#xff0c;直接询问大模型浮点数大小往往会出现错误&#xff0c;而通过设定适当的提示词可以引导大模型生成正确的答案。提示工程是指设计和优化输入提示&#xff08;prompts&#xff09;的过程&#xff0c;这些提示用于指导大…

一网统管政企联动:计讯构建城市生命线安全智能体的应急管理革新

城市生命线国家政策推动生命线风险频发 随着城市化进程加速&#xff0c;城市安全问题日益凸显&#xff0c;包括自然灾害、建筑老化、环境污染和公共卫生事件等潜在风险。城市不仅要更新“硬设施”&#xff0c;更在于通过大数据、云计算、5G等新兴技术提升城市管理的“软实力”。…

three.js 开发粒子系统

在 three.js 中开发粒子系统&#xff0c;你通常会使用 THREE.Points 和 THREE.PointsMaterial。这些组件允许你创建一个由大量点组成的系统&#xff0c;每个点都可以代表一个粒子&#xff0c;并可以自定义其大小、颜色、透明度等属性。以下是一个基本的步骤指南&#xff0c;用于…

赞奇科技与华为云共襄828 B2B企业节,激活数字内容“云”创作

8月28日&#xff0c;在2024中国国际大数据产业博览会上&#xff0c;第三届828 B2B企业节正式开幕&#xff0c;旨在融通数智供需&#xff0c;加速企业智改数转&#xff0c;助推中国数智产业实力再升级。 828 B2B企业节是全国首个基于数字化赋能的企业节&#xff0c;由华为联合上…

kafka安装配置、以及遇到闪退问题的解决办法

一、Kafka对于zookeeper是强依赖&#xff0c;保存kafka相关的节点数据&#xff0c;所以安装Kafka之前必须先安装 zookeeper 详细安装过程参见这位大神写的博客 windows系统kafka小白入门篇——下载安装&#xff0c;环境配置&#xff0c;入门代码书写_windows kafka-CSDN博客 注…

【C++11及其特性】智能指针——unique_ptr

unique_ptr目录 一.排他所有权模式二.auto_ptr的缺点1.可以直接复制和拷贝构造2.STL可以直接赋值3.不支持动态内存分配数组 三.unique_ptr(C11)1.不支持直接赋值和构造2.STL可以不可以直接赋值3.支持动态内存分配数组 四.unique_ptr的用法1.构造函数2.赋值操作3.主动释放对象4.…

免费的电脑录屏软件,这几款软件满足录屏需求!

在数字化时代&#xff0c;电脑录屏已成为我们日常生活和工作中不可或缺的一部分。无论是教学演示、游戏直播、会议记录&#xff0c;还是视频创作&#xff0c;一款优秀的录屏软件都是不可或缺的。今天&#xff0c;就为大家推荐几款免费、高效、易用的电脑录屏软件&#xff0c;帮…

首批国自然博士项目获批名单

【SciencePub学术】从公开新闻来看&#xff0c;已经有20所高校的博士生获批项目&#xff0c;分别是北京大学、清华大学、北京航空航天大学、东南大学、复旦大学、华中科技大学、吉林大学、兰州大学、南方科技大学、南开大学、山东大学、上海交通大学、四川大学、武汉大学、南京…

VSCode必备插件!快看过来!

同学同学&#xff0c;你是不是也很头疼VSCode不知道安装什么插件啊&#xff1f;尤其是萌新小白&#xff0c;更是一头雾水&#xff0c;那就快来一起看看吧~我帮你整理了一些非常实用的插件&#xff0c;安装上它们&#xff0c;你的开发体验会大大提升&#xff01; 1. Chinese (S…

DWG如何转换成PDF?总结了四种转换

DWG如何转换成PDF&#xff1f;在日常工作和学习中&#xff0c;经常需要将CAD软件中的DWG文件转换为PDF格式&#xff0c;以便于更广泛地分享和查阅。那么具体要怎么做&#xff0c;才能实现两种格式的顺利转换呢&#xff1f;为了帮助读者轻松完成这一任务&#xff0c;本文将详细介…

网络价格管控行动:四大策略,打击低价

网络价格管控的举措 设定最低售价约束&#xff1a;品牌方能够与在线零售商订立协议&#xff0c;清晰界定产品的最低售价&#xff0c;以守护品牌形象与市场秩序。推行动态定价策略&#xff1a;依照市场需求、竞争态势以及库存状况动态调节产品价格&#xff0c;保障市场竞争力并…

Java爬虫开发:Jsoup库在图片URL提取中的实战应用

在当今的互联网时代&#xff0c;数据的获取和处理变得尤为重要。对于网站内容的自动化抓取&#xff0c;爬虫技术扮演着不可或缺的角色。Java作为一种广泛使用的编程语言&#xff0c;拥有丰富的库支持网络爬虫的开发。其中&#xff0c;Jsoup库以其简洁、高效的特点&#xff0c;成…

51单片机 - 定时器0(按键控制LED流水灯模式)

时间&#xff1a;2024.9.2 目的&#xff1a;手撕51 作者&#xff1a;Whappy 定时器0寄存器配置 1.定时器0配置过程 首先要配置定时器的寄存器TCON和TMOD使计数器开始计数及定时器的初始值&#xff0c;配置使这个链路连起来。 #include <REGX52.H>void Timer0_Init() {…

【HarmonyOS 4.0】鸿蒙应用模型

应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼&#xff0c;它提供了应用程序必备的组件和运行机制。有了应用模型&#xff0c;开发者可以基于一套统一的模型进行应用开发&#xff0c;使应用开发更简单、高效。随着系统的演进发展&#xff0c;HarmonyOS先后提供…

java 实现文本转音频

文章目录 一、前言二、实现流程2.1 下载jacob-1.18.zip2.2 拷贝jacob-1.18-x64.dll2.3 pom 添加依赖2.4 代码实现 一、前言 本文基于Windows自带的SAPI.SpVoice&#xff0c;通过java代码实现文本转语音的功能。 二、实现流程 2.1 下载jacob-1.18.zip 链接&#xff1a;https…

红帽认证初级有用吗?对个人帮助,报名时间分享

红帽认证初级即红帽认证系统管理员&#xff08;RHCSA&#xff09;是有用的。 拥有 RHCSA 认证的管理员掌握了 Linux 操作系统的基本知识和技能&#xff0c;能够准确理解和解决系统操作中的各种问题。他们了解并熟悉 Linux 命令行和 GUI 界面&#xff0c;可以高效地完成各种任务…

OpenCV绘图函数(15)图像上绘制矩形函数 rectangle()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 绘制一个简单的、粗的或填充的直立矩形。 这个函数 cv::rectangle 绘制一个矩形轮廓或一个填充的矩形&#xff0c;其两个相对的顶点分别是 pt1 和…