以最快的速度学习vue,只挑重点。
Vue构造函数简单格式:
<div id="vue_det">
<h1>name: {{name}}</h1>
<h1>age: {{age}}</h1>
<h1>{{details()}}</h1>
</div>
<script type="text/javascript">
var vm = new Vue({
el: '#vue_det',
data: {
name: "李志云",
age: "20",
alexa: "10000"
},
methods: {
details: function() {
return this.name+ "-贼帅!";
}
}
})
</script>
模板语法:
1.文本对象,就如上面的 “ <h1>name: {{name}}</h1> ” 直接在data中定义即可。
2.HTML对象,使用 ”v-html“ 指令操作html元素,如下:
<div id="app">
<div v-html="message"></div>
</div>
<script>
new Vue({
el: '#app',
data: {
message: '<h1>我要你的哎</h1>'
}
})
</script>
3.HTML 属性 的值应使用 “v-bind” 指令,如下:
</head>
<style>
.class1{
background: #444;
color: #eee;
}
</style>
<body>
<div id="app">
<label for="r1">修改颜色</label><input type="checkbox" v-model="use" id="r1">//勾选时改变下面div的背景颜色
<br><br>
<div v-bind:class="{'class1': use}">
v-bind:class 指令
</div>
</div>
<script>
new Vue({
el: '#app',
data:{
use: false
}
});
</script>
</body>
4.完全js表达式
<div id="app">
{{5+5}}<br>
{{ ok ? 'YES' : 'NO' }}<br>
{{ message.split('').reverse().join('') }}
<div v-bind:id="'list-' + id">菜鸟教程</div>
</div>
<script>
new Vue({
el: '#app',
data: {
ok: true,
message: 'RUNOOB',
id : 1
}
})
</script>
5. 指令(指令是带有 v- 前缀的特殊属性,例如常用的v-if, v-on,v-bind,v-show等等),
<div id="app">
//这里, v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
<p v-if="seen">现在你看到我了</p>
</div>
<script>
new Vue({
el: '#app',
data: {
seen: true
}
})
</script>
6.双向绑定( input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定)
<div id="app">
<p>{{ message }}</p>//内容会随下面文本框的输入而改变
<input v-model="message">
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Runoob!'
}
})
</script>
7.过滤器,被用作一些常见的文本格式化。由"管道符"指示
<div id="app">
{{ message | capitalize }}
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'runoob'
},
filters: {
capitalize: function (value) {
if (!value) return ''
value = value.toString()
return value.charAt(0).toUpperCase() + value.slice(1)
}
}
})
</script>
过滤器可以串联:{{ message | filterA | filterB }} 可以接受参数:{{ message | filterA('arg1', arg2) }}
8.缩写,Vue.js 为两个最为常用的指令提供了特别的缩写:
<!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a> <!-- 完整语法 --> <a v-on:click="doSomething"></a> <!-- 缩写 --> <a @click="doSomething"></a>
语句模块
条件判断“v-if”,完整的如下:
<div id="app">
<div v-if="type === 'A'">//多对if else,单个写法就不说了
A
</div>
<div v-else-if="type === 'B'">
B
</div>
<div v-else-if="type === 'C'">
C
</div>
<div v-else>
Not A/B/C
</div>
</div>
<script>
new Vue({
el: '#app',
data: {
type: 'C'
}
})
</script>
循环语句 v-for
//循环列表
<div id="app">
<ol>
<li v-for="site in sites">
{{ site.name }}
</li>
</ol>
</div>
<script>
new Vue({
el: '#app',
data: {
sites: [
{ name: 'Runoob' },
{ name: 'Google' },
{ name: 'Taobao' }
]
}
})
</script>
//循环对象
<div id="app">
<ul>
<li v-for="value in object">
{{ value }}
</li>
</ul>
</div>
<script>
new Vue({
el: '#app',
data: {
object: {
name: '李志云',
url: 'http://www.baidu.com',
slogan: '学的不仅是技术,更是梦想!'
}
}
})
</script>
--也可以根据属性索引和key来获取
<div id="app">
<ul>
<li v-for="(value, key) in object">
{{ key }} : {{ value }}
</li>
</ul>
</div>
//循环整数
<div id="app"> <ul> <li v-for="n in 10"> {{ n }} </li> </ul> </div>

浙公网安备 33010602011771号