Vuejs入门教程之Vue生命周期,数据,手动挂载,指(2)

<div> {{{html}}} </div> <script> var vm = new Vue({ el:"#app", data: { html:"<span>span</span>" } }) </script> <script> function load() { vm.$mount("#app"); } </script>

显示的内容则只有

span

③插入内容的数据绑定无效(在没有使用partials的情况下)

使用两个大括号或者三个大括号都一样

例如,将②中的html改为以下值

data: { html: "<span>span{{val}}</span>", val: "11" }

显示结果乃是:

span{{val}}

说明没有绑定数据;

按照说明,使用partials可以绑定

不过不会用,等研究明白了再说

④禁止在用户提交的内容上动态渲染,否则会受到XSS攻击

⑤插值也可以用在html标签的属性中,例如class,或者id,或者其他。

但是Vue.js的指令和特殊特性内是不可以用插值的。

(十四)绑定表达式

插值的位置,可以使用JavaScript的表达式,例如:

<div> {{html?html:val}} </div> <script> var vm = new Vue({ el: "#app", data: { html: "", val: "11" } }) </script>

例如以上示例,

假如有html值,则输出hmtl值,否则输出val值;

也可以输出字符串,例如改为:

{{html?html:"no words"}} 

则输出no words

但是只能输出表达式,不能输出比如函数,或者直接放个v-for标签之类的。

但是我推断后者应该可以,可能是我写的方法不对。

(十五)过滤器

①简单来说,在插值中,加入管道符“|”,然后过滤器会生效。

例如:

capitalize这个过滤器,会将字符串的首字母大写

<div> {{{html|capitalize}}} </div> <script> var vm = new Vue({ el: "#app", data: { html: "abc", val: "11" } }) </script>

输出值是Abc

如果是汉字、数字、或者是本身首字母就大写了,则无反应。

②过滤器不能充当表达式使用,因此不能在表达式内使用过滤器,只能在表达式的后面使用。

例如:

{{html[0]|capitalize}}

是可以的,会输出html的首个字母并将其大写;

(html|capitalize)[0] 

是会报错的(不加括号也报错),说明,不能将过滤器视为表达式的一部分

③过滤器可以加参数。

第一个参数:固定为表达式的值(被过滤目标);

第二个参数,过滤器后面的第一个单词;

第三个参数,过滤器后面的第二个单词,依次类推。

参数加引号则视为字符串,参数不加引号则视为表达式,表达式的值作为参数传递给过滤器。

官方例子是:

{{ message | filterA 'arg1' arg2 }}

④过滤器可以自己手写

(十六)指令

①指令(Directives)就是特殊的,以带有前缀v-的特性。

简单粗暴来说,标签里v-开头的就是指令(当然,要Vue能支持)。

指令的值限定为 绑定表达式,就是等号后引号里的。

如:

<div> <div v-if="html"> {{val}} </div> <button>消失上一行</button> </div> <script> var vm = new Vue({ el: "#app", data: { html: "abc", val: "11" } }) function test() { vm.html = ""; } </script>

输出11

其中<div v-if=”html”>就是指令,

可以通过点击按钮让那一行消失(因为html的值被设置为空)

②指令后面可以添加参数:

有些指令(例如v-bind)可以在名称后等号前,添加一个属性,这个属性的作用是响应性的更新HTML特性。

例如:

<style> .white { background-color: white; } .black { background-color: black; } </style> <div> <div v-bind:class="BC">背景颜色变化</div> <button>消失上一行</button> </div> <script> var vm = new Vue({ el: "#app", data: { BC: "black" } }) function test() { vm.BC = "white"; } </script>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wypxsy.html