12.VUE - v-bind 详解
v-bind指令用于给html标签设置属性。
<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>
v-bind入门
<div id="app">
<div v-bind:id="id1">文字</div>
</div> <script>
new Vue({
el: '#app',
data: {
id1: 'myid'
}
})
</script>
会渲染如下:
<div id="myid">文字</div>
字符串拼接
<span :text=' "we" + 1 '>使用</span>
会渲染如下:
<span text='we1'>使用</span>
运算:
<div :text='1 + 2'>test</div>
会渲染如下:
<div text="3">test</div>
调用函数:
<div :text='getText()'>test</div>
......
<script>
export default {
methods: {
getText() {
return "this is text"
}
}
}
</script>
渲染成:
<div text="this is text">test</div>
使用对象:
<template>
<div class="hello">
<div :text='obj'>test</div>
</div>
</template> <script>
export default {
name: 'HelloWorld',
data () {
return {
obj: Object()
}
}
}
</script>
结果:
<div text="[object Object]">test</div>
如果对象有toString方法:
<template>
<div class="hello">
<div :text='obj'>test</div>
</div>
</template> <script>
var obj = Object()
obj.toString = function(){
return "data in obj"
}
export default {
name: 'HelloWorld',
data () {
return {
obj: obj
}
}
}
</script>
则渲染的是toString方法的值:
<div text="data in obj">test</div>
和数组使用:
<template>
<div class="hello">
<div :text='array'>test</div>
</div>
</template> <script>
var array = Array()
array[0] = "1"
array[1] = "2"
export default {
name: 'HelloWorld',
data () {
return {
array: array
}
}
}
</script>
渲染为:
<div text="1,2">test</div>
v-bind vs 计算属性
<template>
<div class="hello">
<div :text='myText'>test</div>
</div>
</template> <script>
export default {
name: 'HelloWorld',
data () {
return {
value: "data"
}
},
computed: {
myText: function(){
return "value is " + this.value
}
}
}
</script>
稍微对比一下,我们不难发现,计算属性和上面的各种功能是一样的,但是在字符串拼接的情况下,使用计算属性的好处是分离了,不在html中写逻辑。所以计算属性是更推荐的用法。
class 属性绑定
<div id="app">
<div v-bind:class="{active: isActive}">文字</div>
</div> <script>
new Vue({
el: '#app',
data: {
isActive: true
}
})
</script>
如果同时多个类都要判断,则可写成<div v-bind:class="{active: isActive, highlight: isHighlight}">文字</div>。
绑定computed属性:
而且还可以绑定computed里的属性,毕竟data的数据是静态的,computed的属性可以计算:
<div id="app">
<div v-bind:class="classObject">文字</div>
</div> <script>
new Vue({
el: '#app',
computed: {
classObject: function () {
// 计算过程省略,假设得出了isActive和isDanger的布尔值
return {
'active': isActive,
'text-danger': isDanger
}
}
}
})
</script>
参考:https://www.cnblogs.com/vuenote/p/9328401.html
参考:https://blog.csdn.net/qq_34911465/article/details/81432542
参考:https://www.jianshu.com/p/019b868c0279
12.VUE - v-bind 详解的更多相关文章
- vue 源码详解(二): 组件生命周期初始化、事件系统初始化
vue 源码详解(二): 组件生命周期初始化.事件系统初始化 上一篇文章 生成 Vue 实例前的准备工作 讲解了实例化前的准备工作, 接下来我们继续看, 我们调用 new Vue() 的时候, 其内部 ...
- main.js index.html与app.vue三者关系详解
main.js index.html与app.vue三者关系详解 2019年01月23日 11:12:15 Pecodo 阅读数 186 main.js与index.html是nodejs的项目启 ...
- vue 源码详解(一):原型对象和全局 `API`的设计
vue 源码详解(一):原型对象和全局 API的设计 1. 从 new Vue() 开始 我们在实际的项目中使用 Vue 的时候 , 一般都是在 main.js 中通过 new Vue({el : ' ...
- vue 文件目录结构详解
vue 文件目录结构详解 本篇文章主要介绍了vue 文件目录结构详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 项目简介 基于 vue.js 的前端开发环境,用于前后 ...
- Vue props用法详解
Vue props用法详解 组件接受的选项之一 props 是 Vue 中非常重要的一个选项.父子组件的关系可以总结为: props down, events up 父组件通过 props 向下传递数 ...
- 【05】Vue 之 实例详解与生命周期
Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...
- Vue.js项目详解
还是以Blog项目来讲解,最近我本人利用闲暇时间,以博客作为参考学习一些新的技术并尝试之前没有尝试过的思路来玩玩. 技术看似枯燥,但是带有一个目的来学,你会发现还是蛮有趣的. 主要实践的就是前后端分离 ...
- vue:vuex详解
一.什么是Vuex? https://vuex.vuejs.org/zh-cn 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相 ...
- nodeJs+vue安装教程详解 相信
相信很多朋友都在装node服务和安装vue的时候会遇到一些问题,下面为大家详细介绍node服务的安装以及vue的安装: 1.nodeJs官网下载版本(根据自己电脑的配置进行相应下载即可):默认安装路径 ...
- Vue 可拖拽组件 Vue Smooth DnD 详解和应用演示
本文发布自 https://www.cnblogs.com/wenruo/p/15061907.html 转载请注明出处. 简介和 Demo 展示 最近需要有个拖拽列表的需求,发现一个简单好用的 Vu ...
随机推荐
- js中国标准时间转换成datetime格式
var format = function (time, format) { var t = new Date(time); var tf = function (i) { return (i < ...
- IdentityServer4之持久化很顺手的事
前言 原计划打算在春节期间多分享几篇技术文章的,但到最后一篇也没出,偷懒了吗?算是吧,过程是这样的:每次拿出电脑,在孩姥姥家的院子总有阳光沐浴,看不清屏幕,回屋又有点冷(在强行找理由),于是又带着娃遛 ...
- Spring-02 第一个Spring程序
Spring-02 第一个Spring程序 第一个Spring程序 1.导入依赖 <dependency> <groupId>org.springframework</g ...
- tcpdump后台抓包并输出给wireshark
# 先进到/tmp 目录执行,方便Filezila 传输 # 开启抓包 nohup tcpdump -i eth0 -s0 -nnA 'port 22' -w dump22.pcap & [1 ...
- Docker安装Openvas
目录 安装 在本机内运行 在局域网内运行 关闭 参考 安装 ➜ ~ docker search openvas NAME DESCRIPTION STARS OFFICIAL AUTOMATED mi ...
- Go语言|类型转换和类型别名
类型转换 同类型之间的转换 Go语言中只有强制类型转换,没有隐式类型转换.该语法只能在两个类型之间支持相互转换的时候使用. import "fmt" func main() { v ...
- C# 基础 - string 和 Datetime
1. string 1. 格式化填充 string str = "this {0} a {1}"; Console.WriteLine(string.Format(str, &qu ...
- Java流程控制:增强for循环,break&continue,打印99乘法表
增强for循环:java5引入了一种主要用于数组或集合的增强for循环for(声明语句:表达式){//代码句子} 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配.其作用域限定在循环语 ...
- P3387 【模板】缩点 题解 (Tarjan)
题目链接 P3387 [模板]缩点 解题思路 这几天搞图论,好有趣hhh,多写几篇博客. 上次学\(Tarjan\)求割点,这次缩点. 思路大概是多一个栈和染色的步骤,每次\(Tarjan\)的时候把 ...
- CF533F Encoding 题解
题目链接CF533F Encoding 提示1: \(\mathcal O(26^2*n)\) 的算法可通过.常用的几种字符串匹配算法kmp,AC自动机,哈希都可以解决该问题 (后两者可以优化到 ...