默认使用html句法,声明式绑定已渲染的DOM到下层的vue实例数据,
实现上,vue将模板编译成虚拟dom渲染函数,组合响应系统,vue找到最少的组件重绘和dom操作次数的方案(state改变时)以 重绘视图,
可以直接编写渲染函数替代模板,支持jsx选项。
mustache tag是数据绑定的最基础形式,表示文本插值,
{{txt}} 被对应data对象的txt属性值替换,随txt属性值改变更新,绑定v-once指令标签中的所有文本插值将不会随data属性值改变更新,
mustache tag输出普通文本,不会生成html标签,使用v-html指令输出html标签,
v-html指令将绑定的标签替换为对应的data属性值,忽略值中的数据绑定,
mustache tag不能在属性中使用,使用v-bind指令替代,
属性值为布尔类型时,v-bind指令值为假(弱类型)时,属性不会出现在渲染后的标签中,
在所有3中数据绑定中,vue都支持js表达式,表达式在对应vue实例的data作用域内被求值,数据绑定表达式只能是一个单条表达式,语句、流程控制语句无效,
数据绑定表达式只能访问白名单中的全局标识符(是一个沙盒)。
指令是一种特殊的vue模板标签属性(attribute),指令属性值应该是一条单独的表达式,指令的作用是响应式的应用连带效果到DOM中(当表达式值改变时),
有些指令需要参数,指令名后使用冒号传参(v-bind:href=‘url‘;v-on:click=‘handler‘),
version2.6.0以后,支持动态参数,动态参数是一个方括号包裹的表达式,表达式的值须是字符串或null,字符串是最终参数,null用来移除绑定,
动态参数表达式语法上不能使用引号和空格,因为在html属性名解析中这两个字符无效(可使用computed prop替代),在in-DOM模板中,表达式避免使用大写字符,浏览器会强制转换html属性名为小写
指令的后缀,用 . 表示,表示指令应该用修饰符规定的特殊方法绑定,(v-on:eventName.prevent ,v-model)
在spa中,vue管理所有模板,v-前缀标识出vue属性会显得有些繁琐,因此vue提供两种最常用命令的简写,
v-bind:arg -> :arg -> :[dynamicArg],v-on:arg -> @arg -> @[dynamicArg],
:和@在html属性名中都是有效字符,并且不会出现在最终渲染的模板中。
注:
不要使用v-html指令组成模板,vue不是基于字符串的模板引擎,
不要使用对接方提供的html插值,动态渲染任意html片段容易导致xss(cross-site script)漏洞。
原文:https://www.cnblogs.com/aibo1114/p/11649859.html