首页 > 其他分享 >Vue基础知识

Vue基础知识

时间:2023-04-22 20:12:07浏览次数:35  
标签:... Vue bind 绑定 基础知识 指令 表达式 属性

模板语法

文本插值(text interpolation)

最基本的数据绑定形式,使用“Mustache”语法即{{...}}

<span>Message:{{msg}}</span>

{{}}中的值会被替换为相应组件实例中msg属性的值,且会同步地更新

原始HTML

<p>Message:<span v-html="msg"></span></p>

这里的v-html被称为指令

Attribute绑定

双大括号不能在HTML Attributes中使用,因此想要响应式地绑定属性应该使用v-bind指令

<div v-bind:id="dynamicId"></div>

v-bind可简写为

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

布尔型Attribute

依据布尔值决定属性是否应该存在于该元素之上

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

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

 动态绑定多个值

假设有这样一个包含多个属性的js对象

data() {
  return {
    objectOfAttrs: {
      id: 'container',
      class: 'wrapper'
    }
  }
}

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

<div v-bind="objectOfAttrs"></div>

使用JavaScript表达式

{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
<div :id="`list-${id}`"></div>

在vue模板中js表达式可以被应用于如下场景:

(1)在文本插值中(2)在Vue指令的属性值中

 注意:每个绑定仅支持单一表达式

例:如下用法都是无效的

<!-- 这是一个语句,而非表达式 -->
{{ var a = 1 }}
<!-- 条件控制也不支持,请使用三元表达式 -->
{{ if (ok) { return message } }}

调用函数

可在绑定的表达式中使用一个组件暴露的方法

<span :title="toTitleDate(date)">
  {{ formatDate(date) }}
</span>

 

 指令Directives

一个指令的任务是在其表达式的值变化时响应地更新DOM

 例:v-if会基于seen的布尔值来动态移除/插入该p元素

<p v-if="seen">Now you see me</p>

参数Arguments

某些指令需要“参数”,如v-bind响应式更新html属性

<a v-bind:href="url"> ... </a>
<!-- 简写 -->
<a :href="url"> ... </a>

再如v-on监听DOM事件(@是v-on:的缩写)

<a v-on:click="doSomething"> ... </a>
<!-- 简写 -->
<a @click="doSomething"> ... </a>

动态参数

在指令参数上可以使用JS表达式,需包含在[ ]内

<!--注意,参数表达式有一些约束,
参见下面“动态参数值的限制”与“动态参数语法的限制”章节的解释--> <a v-bind:[attributeName]="url"> ... </a> <!-- 简写 --> <a :[attributeName]="url"> ... </a>

即如果组件实例中有一个属性attributeName且值为“href”,则这个绑定等价于v-bind:href="url"

同样还可以将一个函数绑定到动态变化的事件名称上

<a v-on:[eventName]="doSomething"> ... </a>
<!-- 简写 -->
<a @[eventName]="doSomething">

当evenntName的值为“focus”时,该绑定等价于v-on:focus="doSomething"

注:动态参数值的限制

(1)动态参数表达式不能使用如空格和引号这种在HTML属性名中不合法的字符,如

<!-- 这会触发一个编译器警告 -->
<a :['foo' + bar]="value"> ... </a>

那么当我们需要传入一个较为复杂的动态参数时,可以使用计算属性

(2)当使用DOM内嵌模板(直接写在HTML文件里的模板)时,名称要避免使用大写字母,因为浏览器会强制转换为小写,如:

<a :[someAttr]="value"> ... </a>

这里的:[someAttr]将被解析为:[someattr]

 

修饰符Modifiers

以点开头的特殊后缀,表明指令需要以一些特殊方式被绑定

如下面的例子中 .prevent 告诉v-on指令对触发的事件调用event.preventDefault()

<form @submit.prevent="onSubmit">...</form>

 

标签:...,Vue,bind,绑定,基础知识,指令,表达式,属性
From: https://www.cnblogs.com/zmhz/p/17343804.html

相关文章

  • RuoYi-Vue 分离版 收获与总结
    https://blog.csdn.net/qq_41965731/article/details/115241184一、常量的定义以下是阿里编码规约   二、图片的base64编码https://blog.csdn.net/duola8789/article/details/78844431概述博客三、在项目启动时将一些数据提交加载到缓存中1.利用@PostConstruct......
  • vue2源码-十二、mixin的使用和原理
    mixin的使用和原理使用:可以通过Vue.mixin来实现逻辑的复用,问题在于数据来源不明确。声明的时候可能对导致命名冲突vue3采用的就是compositionAPI局部混入:varmyMixin={created:function(){this.hello()},methods:{hello:function(){......
  • USB | USB基础知识
    USB|USB基础知识......
  • Java基础知识点API之Object
    一:概述Object是java中的顶级父类,所有的父类都直接或间接地继承于Object类。Object类中的方法可以被所有子类访问,所以我们要学习Object类和其中的方法。二·:OBject的构造方法及其常用的成员方法publicObject()//空参构造classStudent(){privateStringname;private......
  • vue-admin-template 如何添加快捷导航(标签导航栏)
    前言关于快捷导航(标签栏导航)在文档中确实有介绍,但是看完是一头雾水,不知道如何修改,不过文档最后给了一个移除的大致操作,从这里可以找到入手点前期准备vue-admin-template项目代码vue-element-admin项目代码操作流程注:以下操作流程是按照自行摸索的操作顺序来写的,因此......
  • VUE3 里面使用 vuedraggable 兼容tag="transition"的问题
    vue3的拖拽tag="transition"报的错误TypeError:Cannotsetpropertiesofnull(setting'__draggable_context')安装拖拽的时候,使用命令yarnadd@marshallswain/vuedraggable 下载这个包,把dist里面的文件复制到项目里面引入即可,不要使用 yarnaddvuedraggable@nex......
  • vue3+ts使用v-for出现unknown问题
    title:vue3+ts使用v-for出现unknown问题date:2022-12-2719:00:45tags:['Vue','踩坑记录']categories:["前端篇"]最近在写项目时遇到了一个问题,当我从父组件向子组件传数据并且需要将子组件对传入的数据进行v-for循环渲染时,在此出遇到了一个ts报错报错为循环出的data......
  • vue3中使用defineExpose报TS-2339
    title:"vue3+ts使用defineExpose报TS:2339"date:2022-12-2919:32:44tags:["Vue","踩坑记录"]categories:["前端篇"]开头先把错误贴上src/hooks/usePageSearch.ts:9:27TS2339:Property'getPageData'doesnotexistontype&#......
  • Vue3快速上手+俩种创建方式+主要源码讲解
    一.Vue3快速上手2020年9月19日凌晨,尤雨溪正式发布了Vue.js3.0版本,代号:OnePiece。此框架新的主要版本提供了更好的性能、更小的捆绑包体积、更好的TypeScript集成、用于处溪理大规模用例的新API,并为框架未来的长期迭代奠定了坚实的基础。3.0版本的开发周期长达两年多,期间......
  • Vue JS项目 添加TypeScript
    VueJS项目添加TypeScript转载请注明来源谢谢git文件全部提交必须全部提交因为会改掉你的文件.很恶心.vue.config.js添加下面内容pages:{index:{entry:'src/main.js'}}项目根目录运行vueaddtypescript如果你英文可以那就忽略这一条.......