首页 > 其他分享 >一个项目学习Vue3---Vue模板方法

一个项目学习Vue3---Vue模板方法

时间:2024-07-01 16:59:26浏览次数:20  
标签:Vue return 绑定 --- vue Vue3 msg ok id

 内容资源下载:关注公众号(资小库),下载相关资源

分析下面一段代码,学习模板方法的可能的知识

<template>
  <div>
    <div>将下面的msg属性放到上面来:{{ msg }}</div>
    <div v-html="htmlMsg"></div>
    <div v-bind="id">这个地方绑定了一个ID{{ id }}</div>
    <div :id="id">v-bind可以简写为:(冒号)</div>
    <div :id>如果你的属性值=你的字段名称,则可以直接不写,不过似乎一般只有id能用</div>
    <div v-bind:id>这样也可以不过没有:香</div>
    <div :class="bigClass">不止ID一切属性皆可以绑定</div>
    <div :style="textStyle">也可以直接绑定对象,一般用于css等</div>
    <div>如果你要是否支持下面括弧里面是否支持js,就想想你的这个语句是否能直接写在return后面</div>
    <div>{{ num + 1 }}</div>
    <div>{{ ok ? 'YES' : 'NO' }}</div>
    <div>{{ `这里面也可以直接执行函数${hahah(1)}` }}</div>
    <div>学着调用方法</div>
    <button @click="open">点击变猪</button>
    <button v-on:click="open2">这样也可以变</button>
    <div v-if="ok">这里也是ok</div>
    <div v-else>这里是个啥</div>
    <select>
      <option v-for="(item, index) in data">{{ item.id }}</option>
    </select>
    <div>
      <a :[attributeName]="url">这是个链接</a>
      <button v-on:[eventName]="open2">也可以绑定事件</button>
    </div>
    <div>
      <form @submit.prevent="handleSubmit">
        <button type="submit">Submit</button>
      </form>
    </div>
  </div>
</template>

<script lang="ts">
export default {
  data() {
    return {
      msg: '学无止境',
      htmlMsg: '<div>我是被插入的一行代码</div>',
      id: 1,
      bigClass: 'bigClass',
      textStyle: {
        color: 'red',
        with: '100px'
      },
      num: 0,
      ok: true,
      data: [
        {
          id: 1
        },
        {
          id: 2
        }
      ],
      attributeName: 'href',
      url: 'https://www.baidu.com',
      eventName: 'click'
    }
  },
  methods: {
    handleSubmit() {
      // 在这里可以处理表单提交的逻辑
      console.log('Form submitted')
    },
    open() {
      this.msg = '猪'
      this.ok = !this.ok
    },
    open2() {
      this.msg = '猪+1'
      this.ok = !this.ok
    },
    hahah(val) {
      return 'Pag' + val
    }
  }
}
</script>
<style scoped>
.bigClass {
  font-size: 3em;
}
</style>

下面是对上面代码的分析

1.大括号绑定值

<div>将下面的msg属性放到上面来:{{ msg }}</div>
export default {
  data() {
    return {
      msg: '学无止境'
    }
  }
}

当你更改return中的msg的值,你可以很快的发现上面html中大括号里面的内容也会随之发生变化,所以你也可以在

  methods: {
    changeMsg() {
      this.msg = "好好学习"
    }
   }

vue的methids中写一个函数,如果你恰好调用了这个函数,那么你显示的msg的内容将被变为"好好学习",这就是Vue的双向绑定的机制,当然后面所说的所有在return里面的变量都可以进行双向绑定。

2.插入一段HTML

当你想插入一段HTML时候,你会想办法把msg="<div>这就变了</div>.,但是这样在vue中是不被允许的,所以,vue有一个标签v-html可以解决您的问题

<div v-html="htmlMsg"></div>
export default {
  data() {
    return {
      htmlMsg: '<div>我是被插入的一行代码</div>'
    }
  }
}

这样就是插入一行html代码了,当前前面说过,你可以随时利用vue双向绑定的特性,来更改这段变量的内容

3.绑定属性

当我们想绑定id,class,href等这些属性时,你完全可以利用vue实现动态绑定

<div v-bind="id">这个地方绑定了一个ID{{ id }}</div>
<div :id="id">v-bind可以简写为:(冒号)</div>
<div :id>如果你的属性值=你的字段名称,则可以直接不写,不过似乎一般只有id能用</div>
<div v-bind:id>这样也可以不过没有:香</div>
<div :class="bigClass">不止ID一切属性皆可以绑定</div>
<div :style="textStyle">也可以直接绑定对象,一般用于css等</div>
export default {
  data() {
     return {
       id: 1,
       bigClass: 'bigClass',
       textStyle: {
          color: 'red',
          with: '100px'
       },
     }
   }
}
<style scoped>
.bigClass {
  font-size: 3em;
}
.bigClass2 {
  font-size: 5em;
}
</style>

v-bind:的意思是绑定id这个属性,但是你也可以将其简写为:(冒号),所以v-bind:id=”id"和:id=“id"作用是一样的,当然如果你的属性和你的绑定的值是一样的,你可以直接简写为:id,她就等于:id = "id"

不止id,你也可以绑定class和style等其他属性,例如:class="bigClass" ,意思是这个class绑定了return中的class,你完全可以在mothods中写一个方法,让return中的bigClass:”bigClass2“,那么你的字体会从3em变成5em

style的绑定也很特殊,你直接可以绑定一个属性,这个属性你可以直接在你的js中写成一个类似JSON的值,他自己就行生成你想要的风格,当然你也可以通过

this.textStyle.color="blue"

将你的字变成蓝色

4.大括弧支持的内容

{{}}双括弧中不止支持双向绑定一个值,还绑定

<div>{{ num + 1 }}</div>
<div>{{ ok ? 'YES' : 'NO' }}</div>
export default {
  data() {
     return {
        num: 0,
        ok: true,
     }
   }
}

如上面所示,他是支持我们使用算术运算和三元表达式的,但是

<div>{{if(num>0){return true}}}</div>

这种语句是不支持的,所以这种语句应该使用三元表达式代替他

括弧里面是否支持js,就想想你的这个语句是否能直接写在return后面,这是vue的一个标准

大括弧中也可以执行函数

<div>{{ `这里面也可以直接执行函数${hahah(1)}` }}</div>

我们可以看到$()中有一个hahah方法,他就对应methods中的hahah方法

hahah(val) {
  return 'Pag' + val
}

5.方法的调用

<button @click="open">点击变猪</button>
<button v-on:click="open2">这样也可以变</button>
methods: {
    open() {
      this.msg = '猪'
      this.ok = !this.ok
    },
    open2() {
      this.msg = '猪+1'
      this.ok = !this.ok
    }
}

在js中我们使用onClick表示点击方法,vue中则使用@click表示,常用的还有@change,@submit,基本上就是把on变成了@,但是@在vue中等于v-on:,他们的作用是一致的

6.逻辑运算

vue中是支持if、else、for等常用的逻辑操作的

<div v-if="ok">这里也是ok</div>
<div v-else>这里是个啥</div>
<select>
   <option v-for="(item, index) in data">{{ item.id }}</option>
</select>

if-else通常是一组,当然他也支持elseif。

v-for意思是循环一个数组,这里data就是一个数组,一般数组就是[]里面的内容,同时你也可以利用vue双向绑定的机制,随时改变其数组俩面的值,改变后,vue会快速的将他们在页面上渲染出来。

7.属性名称的绑定

<div>
  <a :[attributeName]="url">这是个链接</a>
  <button v-on:[eventName]="open2">也可以绑定事件</button>
</div>


return {
      attributeName: 'href',
      url: 'https://www.baidu.com',
      eventName: 'click'
}

[]中括号的内容很明显在html中是一个标签的属性,在上面这个代码中"attributeName"=href,所以在第一行标签中就相当于html中的

  <a href="https://www.baidu.com">这是个链接</a>

同时他也可以动态绑定事件eventName=“click”。所以他就是一个点击事件,open2是一个方法名称

,所以open2也是个动态绑定的的方法

8.修饰符

修饰符是以点开头的特殊后缀,表明指令需要以一些特殊的方式被绑定。例如 .prevent 修饰符会告知 v-on 指令对触发的事件调用 event.preventDefault()

<form @submit.prevent="handleSubmit">
    <button type="submit">Submit</button>
</form>

标签:Vue,return,绑定,---,vue,Vue3,msg,ok,id
From: https://blog.csdn.net/qq_36360308/article/details/140091412

相关文章

  • vision mamba-yolov8:结合Vmamba的yolov8目标检测改进实现
    1.visionmamba结构与原理        Mamba成功的关键在于S6模型,该模型为NLP任务设计,通过选择性扫描空间状态序列模型,将二次复杂度降低至线性。但由于视觉信号(如图像)的无序性,Mamba的S6模型不能直接应用,设计了2D-selective-scan(SS2D)模块。        如上图所......
  • van-dialog的stopLoading()方法无效
    问题现象:vant版本1.11.4在van-dialog组件使用时,使用了async-close异步关闭,在点击确认按钮触发confirm的回调时,确认按钮一直处于loading状态<van-dialogshow="{{showDialog}}"title="请输入验证码"use-slotasync-closeshowCancelButtonbind:cancel="dia......
  • salesforce学习笔记(9)- 验证用户电子邮件
    1、背景从Spring’22开始,Salesforce要求所有组织和ExperienceCloud站点的所有用户验证他们的电子邮件地址。如果用户从未经验证的电子邮件地址发送电子邮件,Salesforce会拒绝此电子邮件消息,并不会完成发送。未经验证的电子邮件地址在用户验证他们的电子邮件地址或重置密码之......
  • 内存管理-0-开篇
    一、什么是内存管理1.基础内存管理可以大致分为5块(1)物理内存管理node、zone、page、buddy-system、slab(2)虚拟内存管理虚拟内存分用户空间和内核空间,用户空间又分为很多段(代码段、数据段、栈、堆、mmap映射区、动态共享库等等);内核空间也是分为很多区域的,比如低端内存......
  • 吴恩达机器学习Day-5(自用版)
    3.5Visualizingthecostfunction可视化代价函数一、回顾:Model:f(x)=wx+bParameters:w,bCostFunction:J(w,b)=Objective目的:minimizeJ(w,b)二、研究J和w,b的关系形成了类似汤碗的三维形状,当改变w,b的值时,会得到成本函数的不同值。J越小,预测效果越好三、习题补充:四、代码部分......
  • springboot-javax.validation检查是否属于指定的值
    引入依赖:<!--jsr303--><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.1.0.Final</version></dependency><!--hibernatevalidator--><depen......
  • (技术笔记)机器学习理论导引-关键内容分享
    基础概念: 介绍机器学习的基本概念,包括监督学习、无监督学习、半监督学习和强化学习等。模型和算法: 对常见的机器学习模型和算法进行详细介绍,例如决策树、支持向量机、神经网络、聚类算法等。性能度量: 讨论评估和比较机器学习模型性能的指标,例如准确度、精确度、召回率、F1分......
  • springboot-javax.validation编写自定义校验注解
    引入依赖:<!--jsr303--><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.1.0.Final</version></dependency><!--hibernatevalidator--><depen......
  • 26-包装类
    什么是包装类基本数据类型所对应的引用数据类型Object可以统一所有数据,包装类的默认值是null包装类对应类型转换与装箱、拆箱栈里边的数据,拿到堆里边叫装箱(基本类型转成引用类型),反之叫拆箱//类型转换:装箱(基本类型转引用类型)intnum1=18;/......
  • k8s-07-配置应用程序
    配置应用程序ConfigMap:将配置数据置于Kubernetes的顶级资源对象中,并可与其他资源定义存入同一Git仓库或者基于文件的存储系统中。配置应用程序:向容器传递命令行参数为每个容器设置自定义环境变量通过特殊类型的卷将配置文件挂载到容器中在每个容器中,Kubemete......