Vue 中的数据绑定

发布于 2024-12-18 19:03:56 字数 4164 浏览 0 评论 0

Vue 对象的改变会直接影响到 HTML 的标签的变化,而且标签的变化也会反过来影响 Vue 对象的属性的变化

一、数据渲染

<div>{message} </div><!--数据绑定-->
<div v-html="htmlMess"></div> <!--html 绑定-->
<div v-text="message"></div> <!--数据绑定-->

二、属性绑定

<h1 v-bind:title="message">aaa</h1>  <!--属性绑定-->
<a v-bind:href="url">百度</a> <!--属性绑定-->
<a :href="url">百度</a> <!--简写-->

三、类名绑定

<!--类绑定,当 isActive 为 true 时类名生效-->
<div v-bind:class="active : isActive"></div>

<!--多类名绑定,用逗号隔开-->
<div v-bind:class="active:isActive,red:isRed"></div>

<!--对象类名绑定-->
<div v-bind:class="classObj"></div>

<!--类名数组绑定-->
<div v-bind:class="[active,red]"></div>

<!--三元运算符类名绑定-->
<div v-bind:class="isActive ? active : red"></div>

四、样式绑定

<!--内联样式绑定-->
<div v-bind:style="{width:width,height:height}"></div>

<!--内联样式对象绑定-->
<div v-bind:sytle="styleObj"></div>

<!--内联样式对象数组绑定-->
<div v-bind:style="[styleObj1,styleObj2]"></div>

五、条件绑定

<!--条件为真时显示,css 中直接有无此元素-->
<p v-if="seen">hahah</p>

<!--效果同 if,css 中为 display:none-->
<p v-show="seen">hah</p>


<!--循环绑定-->
<p v-for="list in lists">{{alist.text}}</p>

<!--绑定 lists 数组-->
<p v-for="value in lists">{{value}}</p>

<!--值循环输出-->
<p v-for="(key value) in lists">{{key}}:{{value}}</p>

<!--键值对输出-->
<p v-for="(index key value) in lists">{{index}}:{{key}}:{{value}} </p>

<!--索引加键值对输出-->
<p v-for="n in 10">{{n}}</p>

六、事件绑定

<!--事件对应 fun1 方法-->
<a v-on:click="fun1">点击</a>

<!--事件绑定简写-->
<a @click="fun1">点击</a>

<!--事件修饰符:-->

<!-- 阻止单击事件冒泡 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>

<!-- 添加事件侦听器时使用事件捕获模式 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 -->
<div v-on:click.self="doThat">...</div>

<!-- click 事件只能点击一次,2.1.4 版本新增 -->
<a v-on:click.once="doThis"></a>

七、按键绑定

相应按键按下时触发

<input v-on:keyup.enter="submit">
<input @keyup.enter="submit">

全部的按键别名:

  • .enter
  • .tab
  • .delete (捕获 “删除” 和 “退格” 键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right
  • .ctrl
  • .alt
  • .shift
  • .meta

八、双向绑定

<p>{message}</p>   

<!--input 输入值将传入 Vue 中的 message-->
<input type="text" v-model="message"/>

<select v-model="message" id="aa">
<option>百度</option>
<option>腾讯</option>
<option>阿里</option>
</select>

绑定修饰符

  • v-model.lazyinput 同步改为 change 同步 -
  • v-model.mumber 将能转化为数字的字符串转化为数字
  • v-model.trim 过滤空格

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

So要识趣

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文