本文共 3015 字,大约阅读时间需要 10 分钟。
mustache语法,简单来说就是{
{}}语法,并且数据是响应式的//mustache语法{ { message}}
我们在原来的标签上加上v-once指令
{ { message}}
然后打开浏览器,输入app.message = ‘vue.js’,发现页面上的值并没有改变,这就是v-once的效果。
有时候,我们从服务器里请求来的数据本身就是html代码,如果我们直接通过mustache语法来展示,会将html代码也一起展示,但是我们希望的是按照html格式解析,并展示相应内容,此时可以用v-html指令
{ { link}}
效果如下:
{ { message}}
效果如下:
v-pre用于跳过这个元素和它的子元素的编译过程,用于显示原本的mustache语法
比如下面的代码:
{ { message}}
{ { message}}
效果如下:
由于某些原因,比如网络加载原因或者数据渲染较慢,浏览器可能直接显示出未编译的mustache标签。
例如:
hello { { name}}
此时页面的效果就是这样:
上面的显示效果显然是不好的。但是我们如果加上 v-cloak 指令,并设置样式,在没有渲染之前,页面就不会出现未渲染好的内容和标签:
hello { { name}}
前面介绍的指令是将值插入到我们的模板内容中,但是,除了内容需要动态决定外,某些属性我们也希望来动态决定,比如动态绑定a标签的href属性、img标签的src属性或者一些其他标签的class属性等等,此时,就需要用到这个指令:v-bind
v-bind:
通过Vue实例中的data绑定元素的src和href:
效果如下:
有时候,我们希望可以动态的切换class属性,比如:
当数据为某一状态时,字体显示红色
当数据为另一状态时,字体显示黑色
绑定class的两种方式:
含义:class后面跟的是一个对象
hello world
hello world
...data:{ isActive:true, isLine:true }
效果如下:
hello world
hello world
//属性hello world
hello world
含义:class后面跟的是一个数组
//属性
我们可以利用v-bind:style来绑定一些CSS内联样式
:style后面跟的是一个对象类型,其中,对象的key是CSS属性的名称,对象的value是具体赋的值
hello world
:style后面跟的是一个数组类型
hello world
我们知道,在模板中可以直接通过插值语法来显示data中的数据,但是某些情况下,我们需要对数据进行一些处理,或者将多个数据结合起来显示。
例如:我们有firstName和lastName两个变量,需要显示完整的名称,我们可以直接用
{ { firstName}}{ { lastName}}
这样的插值语法来显示。
但是如果多个地方都需要显示完成的名称,我们就需要写很多个这样的代码。
其实,我们可以将上面的代码写成计算属性。
{ { fullName}}
总价是:{ { totalPirce}}
每个计算属性都包含了一个getter和一个setter。在上面的例子中,我们只是用getter来读取值,在某些情况下,也可以使用setter来设置值,代码如下:
{ { fullName}}
{ { firstName}}
{ { lastName}}
然后在console里输入 app.fullName=‘zhang.san’,会调用set方法,然后显示会调用get方法。
我们可能会考虑一个问题:
methods和computed看起来都可以实现我们的功能,但是为什么会多出一个计算属性呢,直接都使用methods不就可以了?
原因:计算属性会进行缓存,如果多次使用时,计算属性只会调用一次
{ { fullName}}
{ { fullName}}
{ { fullName}}
{ { getFullName()}}
{ { getFullName()}}
{ { getFullName()}}
结果如下,会发现,计算属性只调用了一次,但是方法却调用了三次。
转载地址:http://dqmbi.baihongyu.com/