首先我们还是像上节课一样,用vue cli的create命令新建一个项目,名字可以随便起
创建完项目一样把用不着的内容先删掉,保持一个最简内容
App.vue内容是这样的
<template>
<div></div>
</template>
<script>
// 模板语法
export default {
name: 'App',
}
</script>
<style></style>
这节课我们讲解一下vue的基本模板语法,也就是我们在template这个标签里面写的语法,
首先vue的模板语法继承了html的语法,我们在template里写的也都是标准的html标签,只有在需要动态绑定一些内容的时候,我们才用到vue的模板语法,大概有一下几种
1.插值
插值的方式就是我之前用过的双花括号的形式{{}},一般在花括号内就是我们绑定的vue对象的变量了
比如我们在data里增加一个字符串msg,
data() {
return {
msg: '我是钢铁侠',
}
},
通过插值把这个字符串绑定到模板里
<div>{{msg}}</div>
最后渲染出来就是
<div>我是钢铁侠</div>
除了直接绑定一个数据,双花括号里还既可以写简单的js表达式
{{ number + 1 }} // 对数字类型就行计算
{{ ok ? 'YES' : 'NO' }} // 使用三元表达式?:
{{ message.split('').reverse().join('') }} // 对字符串类型的数据进行操作
甚至还可以调用methods里的方法,比如在methods里增加一个方法
methods: {
getMsg() {
return '我是钢铁侠'
},
},
在模板里使用
<div>{{ getMsg() }}</div>
最后的结果同样是:
<div>我是钢铁侠</div>
但是这种方式并不常用,知道就行了
2.插入html内容
在工作中有一个常见的需求,就是发布文章的时候,文章内容往往是一段html字符串,我们叫做富文本
我们可以先试试用双花括号的方式,绑定到页面上行不行
<template>
<div>{{ htmlStr }}</div>
</template>
<script>
// 模板语法
export default {
name: 'App',
data() {
return {
htmlStr: '<div>我是一段富文本</div>',
}
},
}
</script>
<style></style>
我们看到显示的效果是这样的
显然老板是不会满意的,
这时候就需要用到一个新的绑定数据的方式v-html,
这时候我们就可以看到内容正常显示了
然而使用v-html是有安全风险的,有兴趣的小伙伴可以了解一下xss攻击。
3.指令
根据官网的定义,指令就是写在标签上用v-开头的特殊属性,这么说有点抽象,其实我们已经学过几个指令了,比如v-if、v-show
<p v-if="seen">现在你看到我了</p>
还有我们刚学习的v-html
使用v-bind指令可以给一个html标签动态的绑定一个属性,比如我们之前在循环中动态绑定的key
<li v-for="(item, index) in list" v-bind:key="index"></li>
以后我们都简写为一个冒号:
<li v-for="(item, index) in list" :key="index"></li>
还有绑定事件用的v-on,以后我们都简写为@
<a @click="doSomething"> ... </a>
小伙伴们现在掌握这些指令的用法就行,以后指令还有很多内容,我们以后再学习。
这节课我们就到这里了,主要讲解了在template模板中绑定动态数据的集中方式,大部分之前也都用过,现在再巩固一遍。