Vue入门——模板语法

模板语法

本文写作初衷,最近给同事分享了一下 Vue 的入门教程,但是,感觉在分享过程中,讲得比较乱,没有达到预期的效果;另外,在翻看官方文档中,发现有很多知识原来自己没有注意的地方,因此,通过本系列文章巩固一下自己的学习。

个人觉得 vue 官方文档已经讲解的非常好了,更详细内容请查看:https://cn.vuejs.org/

  模板语法,就是动态的 HTML 页面,包含一些 js 代码,双大括号表达式、指令(v-bind 等)

1 双大括号

<span>{{message}}</span>

  相当于 v-text 指令:<span v-text="message"></span>

  另外,双大括号可以调用对象的方法,也可以直接在双大括号中使用 JavaScript 表达式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
    <!--view -->
    <div id="app">
        <input v-model="message">
        <br>
        {{add(message)}}
        <br>
        {{ message.split(' ').reverse().join(',') }}
    </div>
    <script>
        // vm  实例
        const vm = new Vue({
            el : '#app', // element
            data : { // model
                message : 'Hello world'
            },
            methods: {
                add(str) {
                    return str + " aaa"
                }
            }
        })
    </script>
</body>
</html>

2 原始 HTML

  双大括号会将数据解释为普通文本,而非 HTML 代码。有时候,我们可能会在数据中保存部分的 HTML 标签,例如:换行符 <br>;这时候,如果使用双大括号,会看到标签被当做文本展示,而不是作为换行标签,我们可以使用 v-html 指令,将数据作为 HTML 代码展示:

<!--view -->
<div id="app">
    <input v-model="message">
    {{message}}
    <span v-html="message"></span>
</div>
<script>
    // vm  实例
    const vm = new Vue({
        el : '#app', // element
        data : { // model
            message : 'Hello <br> world'
        },
        methods: {
            add(str) {
                return str + " aaa"
            }
        }
    })
</script>

3 指令:数据绑定

  双大括号语法,无法作用在 HTML 特性上,这种情况下,我们会使用 v-bind 指定,

  • 主要作用,指定属性值,
  • 通常的写法: v-bind:xxx=‘yyy’
  • 简写::xxx='yyy'
<input :disabled="isButtonDisabled"/>
<script>
    // vm  实例
    const vm = new Vue({
        el : '#app', // element
        data : { // model
            message : 'Hello <br> world',
            isButtonDisabled: true
        },
        methods: {
            add(str) {
                return str + " aaa"
            }
        }
    })
</script>

3 指令:事件绑定

  v-bind 主要绑定属性值,而我们的 HTML 元素通常还有一些时间,例如,按钮的点击事件等。在 vue 中,我们可以使用 v-on 绑定事件:

  • 通常的写法:v-on:keyup=‘xxx’ 或 v-on:keyup=‘xxx(参数)’
  • 简写: @keyup=‘xxxx’
<!--view -->
<div id="app">
    <button @click="handleClick">点我</button>
</div>
<script>
    // vm  实例
    const vm = new Vue({
        el : '#app', // element
        data : { // model
            message : 'Hello <br> world',
            isButtonDisabled: true
        },
        methods: {
            handleClick() {
                alert('点击事件')
            }
        }
    })
</script>

4 动态参数

  上边的指令,都是给指定的属性绑定值,或者给指定的事件绑定方法,Vue 2.6 之后,甚至允许我们绑定一个动态的属性,具体写法如下

<a v-bind:[attributeName]="url"> ... </a>

  这里 attributeName 也会作为 JavaScript 表达式动态求值,如果 data 中 attributeName 为 href 那么,就相当于 <a v-bind:href="url"> ... </a> ;另外,需要注意的是,url 作为绑定的值,也是一个 JavaScript 表达式,如果是一个指定的字符串而不是在 data 中声明的,需要使用在添加引号,表示是一个字符串。

<div :[aaa]="'color:#F00'">{{message}}</div>
<script>
    // vm  实例
    const vm = new Vue({
        el : '#app', // element
        data : { // model
            message : 'Hello <br> world',
            aaa: 'style'
        }
    })
</script>

  另外,需要注意的是,参数部分(即上边的 attributeName),是作为 HTML 中的属性名称,因此不能有引号和空格。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值