vue模板语法

Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。

 

插值:

1:文本

最常见的数据绑定形式:使用 {{...}} 进行文本插值。例:

<div id="abc">

<p>{{ message }}</p>

</div>

<script>...</script>

2:html

使用v-html指令输出html代码。例:

<div id="abc">

<div v-html="message"></div>

<div>

<script>

new Vue({

el:'#abc',

data:{

message:'<h1>Vue学习</h1>'

}

})

</script>

3:属性

使用v-bind指令进行属性的绑定。用法有多种,如判断、直接绑定、绑定多个等。例:

<style>

.class1{ background: #444; color: #eee ;}

</style>

<div id="app">

<div v-bind:class="{'class1': class1}"> v-bind:class 指令 </div>

</div>

<script>

new Vue({

el: '#app',

data:{ class1: true }

});

</script>

4:表达式

Vue.js提供了完全的JavaScript表达式支持。例:

<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-前缀的特殊属性,作用是当表达式的值该表示,将一些行为应用到DOM上。例:

<div id="app">

<p v-if="seen">现在你看到我了</p>

</div>

<script>

new Vue({

el: '#app',

data: {seen: true}

});

</script>

v-if指令判断seen的值,来决定是否插入<p>元素。

还有常用的v-on指令,用来监听DOM事件。

6:参数

参数在指令后,以冒号指明。如:v-bind指令后指定相应的属性参数。

7:修饰符

用"."指明的特殊后缀,指出一个指令应该以特殊的方式绑定。

用户输入:

1:input输入框中使用v-model指令进行双向的数据绑定。例:

<div id="app">

<p>{{message}}</p>

<input v-model="message">

</div>

<script>

new Vue({

el:'#app',

data:{

message:'vue学习'

}

});

</script>

这里,可以在input框中输入数据,<p>标签的文本随之改变。

当然,v-model不止这一点作用。

2:可以使用v-on监听事件,来对用户的输入进行响应。例:

<div id="app">

<p>{{ message }}</p>

<button v-on:click="reverseMessage">反转字符串</button>

</div>

<script>

new Vue({

el: '#app',

data: {

message: 'Runoob!'

},

methods: {

reverseMessage: function () {

this.message = this.message.split('').reverse().join('')

}

}

});

</script>

这里,对button的click事件进行监听,用户点击时,执行reverseMessage函数,对message进行反转。

过滤器:

Vue.js允许自定义过滤器,完成一些功能。比如对字符串进行特定的操作。过滤器由 管道符:"|"来指示。如:{{ abc | filter }}、<div v-bind:"abc | filter"></div>。其中,管道符左侧的值会作为过滤 器第一个参数传入。过滤器可以串联,如:{{abc | filter1 | filter2}}。例:

<div class="app">{{message | capitalize }}</div>

<script>

new Vue({

el:'#app',

data:{message:'runnob'},

filters: {

capitalize: function (value) {

if (!value) return ''

value = value.toString()

return value.charAt(0).toUpperCase() + value.slice(1)

}

}

});

</script>

这里对message的值进行首字母大写,然后输出。

缩写:

对于两个常用的指令:v-bind和v-on,Vue.js提供了缩写。v-bind:class = :class,v-on:click = @click。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值