Vue部分
const { createApp} = Vue; const app = createApp({ data() { return { count: 0, content:'<h3>我是html内容<h3/>', isDisabled:false } } }); app.mount('#appDiv');
插入文本
双大括号 {{ text }} ,与Vue2.x 一样。
<h1 class="display-4">{{count}}</h1>
插入html
v-html = xxxx,同Vue2,另外动态绑定html时一定要做校验,并且不能信任第三方的html内容。
<span v-html="content"></span>
属性绑定
v-bind:id=xxxx,简写为 : id =xxxx ,同Vue2。
<input type="button" :disabled="isDisabled" v-on:click="count++" value="点击++"/>
动态绑定多个值
data中添加新属性
objectOfAttrs: { id: 'div002', class: 'wrapper' }
html部分添加一个div,绑定这个属性
<div v-bind="objectOfAttrs">我是div002</div>
生成页面上按f12可以看到这个div的属性是,我们通过动态绑定把新的div的id和class都设置好了。
<div id="div002" class="wrapper">我是div002</div>
JavaScript表达式
Vue所有的数据绑定都支持完整的JavaScript表达式,比如三元表达式,函数,字符串拼接等。
{{ number + 1 }} {{ ok ? 'YES' : 'NO' }} {{ message.split('').reverse().join('') }} <div :id="`list-${id}`"></div>
同时也每个绑定也只支持单一的表达式,你不能绑定一大段代码。一个简单的判断方法是是否可以合法地写在 return
后面。
比如这些肯定不行
<!-- 这是一个语句,而非表达式 --> {{ var a = 1 }} <!-- 条件控制也不支持,请使用三元表达式 --> {{ if (ok) { return message } }}
指令绑定
常用指令也还是那几个,v-if, v-on. v-for 等等,用法没有变化。
指令也可以动态绑定
<a v-bind:[attributename]="url"> ... </a> <!-- 简写 --> <a :[attributename]="url"> ... </a>
这个attributename是我们在data中定义的一个属性,值是href,那么这里等价为 href = "url"。
动态参数中表达式的值应当是一个字符串,或者是 null
。特殊值 null
意为显式移除该绑定。其他非字符串的值会触发警告。
需要注意的是,为了避免不必要的错误,动态属性名最好都用小写。
修饰符
修饰符跟Vue2一样,可以参考之前Vue2的内容。