昨天我们讲了Vue的一生,今天来说说模板语法,看看要怎麽把vue instance中的资料变化渲染到画面上,gogogo ─=≡Σ((( つ><)つ
Vue使用模板语法就像变魔法一样,将我们的资料与画面连动在一起,让html像是活过来一样,可以响应各种 vue instance的变化,让我们在vue instance中的逻辑可以随心所欲的显现在页面上ଘ(੭ˊᵕˋ)੭* ੈ✩‧₊˚
Vue.js使用基於Html的模板语法,允许开发者将DOM绑定至底层vue instance中的数据。
Vue会将模板编译成虚拟DOM渲染函数,并结合响应式系统,能计算出最少需要重新渲染那些组件,并把DOM的操作减少到最少。
Vue模板语法共分为两种:插值、指令,我们今天先来讲插值的部分!!
数据绑定最常见的形式是使用Mustache语法,也就是双大括弧{{ }}
<span>Message: {{ msg }}</span>
Mustache标签会对应msg property 的值,只要msg property有了改变,插值中的内容都会跟着更新。
<div id="app">
<p>Message: {{ msg }}</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'Hello Vue!'
}
});
</script>
出来的结果会是
但当我们打上vm.$data.msg = 'change msg'
原本Hello Vue!的地方就会变成change msg
如果想要执行一次性的插值,可以使用v-once这个指令,当data内容更新时,插值处的内容不会跟着改变。
<div id="app">
<p>这里的讯息会跟着变: {{ msg }}</p>
<p v-once>这里的讯息不会改变: {{ msg }}</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
msg: 'Hello Vue!'
}
});
</script>
执行结果
当我们使用双大括号{{ }}的时候,资料会以文本的方式被读出来,所以如果我们要输出HTML的话就要使用v-html。
我们来用范例看看差别吧!
<div id="app">
<p>{{ html }}</p>
<p v-html='html'></p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
html:'<span style="color: red">This should be red.</span>'
}
});
</script>
我们可以看到第一个{{html}}读出来之後就是底下的那一大串字,而当当我们使用v-html时他才会读出我们真正要显示出的东西!
注意!若v-html後面本来就有文字,执行後两者没办法作合并,所以原本的内容会被取代掉。
这边多补充一个v-text,他出来的结果也是普通文本,但跟v-html一样会取代掉本来的文字。
所以三个里面只有双大括号不会把原本的内容取代掉,也可以作比较多的变化
<div id="app">
<p>{{ html }}我是本来的文字</p>
<p v-text='html'>我是本来的文字</p>
<p v-html='html'>我是本来的文字</p>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {
html:'<span style="color: red">This should be red.</span>'
}
});
</script>
<<: 【从零开始的Swift开发心路历程-Day13】打造自己的私房美食名单Part2
前阵子托朋友的福,去了富士山第一排露营。露营的好处就是不用想行程,光是准备吃的东西跟睡觉的地方就够忙...
ODOO透过Model来定义资料表中的栏位与关联,我们今天介绍一个Model的类别以及属性。 我们以...
上一篇介绍如何在Backtesting写策略,这篇会和大家介绍如何做参数的最佳化。 什麽是参数最佳化...
前言 React.js 是一套 JavaScript 函式库,而其写法也的确如同其字面上意思,写起来...
这是什麽 贪婪法,精神在於有限的条件下,每一步都采取对於当下最有利的选择(短视近利),使状态更接近答...