Vue.js常用语法
Vue.js 模板语法
Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。
Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。
结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。
文本插值
数据绑定最常见的形式就是使用 {{…}}(双大括号)的文本插值:
<div>
<p>{{ msg }}</p>
</div>
Html
使用 v-html 指令用于输出 html 代码:
<!-- 解析html语法 -->
<div v-html="msg"></div>
<script>
export default {
data() {
return {
msg: '<h1>变量</h1>',
}
}
}
</script>
v-show
我们也可以使用 v-show 指令来根据条件展示元素:
<div>
<h3 v-show="ok">Hello World</h3>
</div>
<script>
export default {
data() {
return {
ok: 1, // 0:false 1:true,
}
}
}
</script>
缩写
Vue.js 为两个最为常用的指令提供了特别的缩写:
v-bind 缩写
<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>
v-on 缩写
<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>
条件判断 v-if v-else-if v-else
<div v-if="type === 'A'">A</div>
<div v-else-if="type === 'B'">B</div>
<div v-else>啥也不是</div>
<script>
export default {
data() {
return {
type: 'A',
}
}
}
</script>
循环语句 v-for
<ul>
<!-- -->
<li v-for="(item, index) in tlist" :key="index" :class="{on:index%2==0, off:index%2!==0}">
{{ item.text }}
</li>
</ul>
<script>
export default {
data() {
return {
tlist: [{text: '家电'}, {text: '生鲜'}, {text: '果蔬'}],
}
}
}
</script>
<style>
.on {background: rebeccapurple; color: white;}
.off {background: red; color: black;}
</style>
监听属性 watch
<button @click='counter++'>点我加1</button>
<script>
export default {
// 监听属性
watch: {
counter: function (nval, oval) {
console.log('计数器由' + oval + '变成了' + nval)
}
},
}
</script>
计算属性 computed
<div>{{ reverse_msg }}</div>
<script>
export default {
// 计算属性
computed: {
// 反转
reverse_msg: function (){
return this.msg.split('').reverse().join('');
}
},
}
</script>