Vuejs模板绑定
一、Vue实例
①el:指定被Vue管理的模板入口,网页中的DOM节点,但是不能使用body和html,必须是一个普通的HTML标签节点,一般是div
②data:数据驱动视图的数据,在data中初始化一个数据成员,然后在模板中就可以使用这个模板成员,可以通过修改数据的方式来修改视图
③methods:一般用来定义事件处理函数,也可以把方法写到data中,但是在Vue中更推荐把所有方法写到methods属性中,这样更加合理,把方法和数据分门别类
<div id="app">
<h1>{{message}}</h1>
<button v-on:click="handleClick">点击</button>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
message:'hello vue'
},
methods:{
/*正常写法:
handleClick:function(){
window.alert(this.message)
}*/
/*ES6对象属性函数简写方式*/
handleClick(){
window.alert(this.message)
}
}
});
</script>
二、数据绑定渲染(单向绑定)
①文本绑定,可以使用使用JavaScript表达式
{{data中的数据成员}}
<div id="app">
<!-- data中的message成员 -->
<h3>{{message}}</h3>
<!-- 字符串message -->
<h3>{{'message'}}</h3>
<!-- 数字123 -->
<h3>{{123}}</h3>
<!-- 使用JavaScript表达式 -->
<p>{{'vue'+'js'}}</p>
<p>{{1+100}}</p>
<p>{{message+'world'}}</p>
<p>{{ok?123:456}}</p>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
message:'hello',
ok:false,
}
});
</script>

②标签节点属性绑定,可以使用使用JavaScript表达式
v-bind:属性名称="data中的数据成员"
:属性名称="data中的数据成员"(简写方式)
<div id="app">
<a v-bind:href="url">vue官网</a>
<!-- 简写模式:省略v-bind,直接:开头 -->
<a :href="url">vue官网</a>
<!-- 使用JavaScript表达式 -->
<p v-bind:class="'vue'+'js'">字符串拼接</p>
<p v-bind:class="ok?'YES':'NO'">三元表达式</p>
<p v-bind:class="message+'world'">数据成员和字符串拼接</p>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
url:'https://cn.vuejs.org/',
message:'hello',
ok:false
}
});
</script>

③转义输出html文档
v-html='data中的数据成员'
<div id="app">
<div v-html='rawhtml'></div>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
// 在html中不能使用vue的语法特性
rawhtml:'<h1>hello world</h1>',
}
});
</script>

三、表单数据双向绑定
①文本和多行文本
v-model='data数据中的成员'
<div id="app">
<p>{{message}}</p>
<input type="text" :value='message'><br>
<!-- 双向绑定 -->
<input type="text" v-model='message'><br>
<textarea cols="30" rows="10" v-model='message'></textarea>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
message:'hello'
}
});
</script>

③复选框和单选按钮
<div id="app">
<!-- 复选框 -->
<input type="checkbox" v-model='seen'><br>
<h1>{{seen}}</h1>
<!-- 单选框 -->
<input type="radio" id="one" value="One" v-model="picked">One<br>
<input type="radio" id="two" value="Two" v-model="picked">Two<br>
<h1>Picked: {{ picked }}</h1>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
seen:true,
picked:'',
}
});
</script>

⑤选择列表
<div id="app">
<select v-model="selected">
<option disabled value="">请选择</option>
<option>A</option>
<option>B</option>
<option>C</option>
</select>
<h1>Selected: {{ selected }}</h1>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
selected: ''
}
});
</script>

四、事件绑定
v-on:事件名称="处理函数"
@事件名称="处理函数"(简写)
<div id="app">
<button v-on:click="handleClick">点击获取 number</button>
<button @click="handleClick">点击获取 number</button>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
number:10
},
methods:{
handleClick(){
window.alert(this.number)
}
}
});
</script>
五、条件渲染和列表渲染
①条件渲染:
<div id="app">
<input type="checkbox" v-model='seen'>点击
<div v-if='seen' style="width: 100px;height: 100px;background: red;"></div>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
seen:true,
}
});
</script>

②列表渲染:
<div id="app">
<ol>
<li v-for='item in person'>{{item}}</li>
</ol>
<ul>
<li v-for='student in students'>{{student.id+student.name}}</li>
</ul>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script>
const app=new Vue({
el:'#app',
data:{
person:['刘备','张飞','关羽'],
students:[
{id:1,name:'张三'},
{id:2,name:'李四'},
{id:3,name:'王五'},
]
}
});
</script>

注:详细完善的内容请参考官方文档
Vuejs模板绑定的更多相关文章
- 【Knockout.js 学习体验之旅】(3)模板绑定
本文是[Knockout.js 学习体验之旅]系列文章的第3篇,所有demo均基于目前knockout.js的最新版本(3.4.0).小茄才识有限,文中若有不当之处,还望大家指出. 目录: [Knoc ...
- knockoutJS学习笔记06:ko数组与模板绑定
前面已经介绍了基本的绑定和模板相关知识,接下来就看ko里的数组和模板绑定,数组和模板绑定应该是实际项目中用得比较多的,ko提供了很好的支持. 一.observaleArray 前面的监控属性都是单个对 ...
- Windows Store App JavaScript 开发:模板绑定
WinJS库模板提供了一种格式化显示多条数据的便捷方式,通过这种方式可以将模板与ListView或FlipView等控件结合使用以控制数据的显示格式.定义一个WinJS库模板的方法与定义WinJS库控 ...
- Knockout学习之模板绑定器
模板绑定器 如今页面结构越来越复杂,仅仅依靠foreach已经不足以我们的使用,这个时候我们就需要模板的存在,模板的优点自然很多,首先会让页面整洁,同时修改起来也可以方面的定位,最重要的是ko可以条件 ...
- Knockout应用开发指南 第四章:模板绑定
原文:Knockout应用开发指南 第四章:模板绑定 模板绑定The template binding 目的 template绑定通过模板将数据render到页面.模板绑定对于构建嵌套结构的页面非常方 ...
- KnockOut文档--模板绑定
目的 模板绑定使用数据render模板,然后把渲染的结果填充到Dom树中.模板通过重复或嵌套块(通常为您的视图模型数据的函数)用一种简单,方便的方式来建立复杂的UI结构 . 有两种方式使用模板: Na ...
- WPF 模板绑定父级控件内容
WPF 模板绑定父级控件内容 <Style TargetType="Button" x:Key="btn"> <Setter Property ...
- Win10系列:JavaScript 模板绑定
WinJS库模板提供了一种格式化显示多条数据的便捷方式,通过这种方式可以将模板与ListView或FlipView等控件结合使用以控制数据的显示格式.定义一个WinJS库模板的方法与定义WinJS库控 ...
- Xamarin XAML语言教程控件模板的模板绑定
Xamarin XAML语言教程控件模板的模板绑定 控件模板的模板绑定 为了可以轻松更改控件模板中控件上的属性值,可以在控件模板中实现模板绑定功能.模板绑定允许控件模板中的控件将数据绑定到公共属性上. ...
随机推荐
- standard_init_linux.go:178: exec user process caused "no such file or directory"
golang docker build 制作完进项后运行报错 出现该问题的原因是编译的环境和运行的环境不同,可能有动态库的依赖 1.默认go使用静态链接,在docker的golang环境中默认是使用动 ...
- 「雅礼集训 2018 Day5」Convex 凸包、莫队
LOJ 看到离线区间操作仍然考虑莫队,然后可以发现:我们对于原来的凸包集合按照极角序维护一个链表,那么删除一个位置可以\(O(1)\),撤回删除操作也可以\(O(1)\)(因为原来的链表结构中当前节点 ...
- python turtle画花
turtle是一个功能强调大的绘图的库,可以用来绘制各种所需要的图案,但是在使用时需要计算好角度等一系列的问题. 代码(源自<Python语言程序设计>)如下: 运行结果:
- Static and Instance Methods in JavaScript
class.method/instance method https://abdulapopoola.com/2013/03/30/static-and-instance-methods-in-jav ...
- ReactiveObjC basic
基础-> https://www.jianshu.com/p/cd4031fbf8ff 在RAC中,万物皆信号. RAC 指的就是 RactiveCocoa ,是 Github 的一个开源框架, ...
- ASP.NET Core中使用Cache缓存
ASP.NET Core中使用Cache缓存 缓存介绍: 通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性. 缓存对不经常更改的数据效果最佳. 缓存生成的数据副本的返回速度可以比从原始 ...
- 模块化规范:CMD和AMD的区别
https://www.zhihu.com/question/20351507/answer/14859415 AMD(异步模块定义) 是 RequireJS 在推广过程中对模块定义的规范化产出.CM ...
- Nginx学习(二)
------------恢复内容开始------------ Nginx配置文件 主配置文件结构:四部分 main block:主配置段,既全局配置段,对Http,mail都有效 event{ }事件 ...
- jQuery遍历之find()
/**案例说明: *首先理清楚find()函数同children()函数之间的区别 * 1. find()会遍历给定节点下的所有的元素节点. * 2. children()之后遍历给定节点下的单一层级 ...
- PAT 乙级 1019.数字黑洞 C++/Java
题目来源 给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有 ...