美文网首页VueWeb前端之路让前端飞
vue学习笔记2——指令v-text && v-

vue学习笔记2——指令v-text && v-

作者: 椰果粒 | 来源:发表于2017-05-11 20:33 被阅读12059次

一 : 指令的概念:

指令是vue自定义的以v-开头的自定义属性。每个不同的属性都有各自不同的意义和功能

二 : 指令的语法:

v-指令名 = “表达式判断或者是业务模型中属性名或者事件名”

三 : 具体指令

1. v-text

作用 : 操作元素中的纯文本
快捷方式 : {{}}

栗子1

简写形式:将v-text=""换成{{}}

<div id="app">
  {{ message }}
</div>
var app = new Vue({
   el : '#app',
   data : {
    message : 'hello world' 
 }
})

结果:hello world

栗子2
<h1 id="app1" v-text="'今天是'+year+'年'+month+'月'"></h1>
var app1 = new Vue({
    el : "#app1",
    data : {
        year : new Date().getFullYear(),
        month : new Date().getMonth()+1
    }
})

结果:今天是2017年5月
等同于:<h1 id="app1">今天是{{year}}年{{month}}月</h1>

  1. 这里v-text="",双引号并不是代表字符串,而是vue自定义的划定界限的符号。如果我们里边输出字符串,就要在里边再添加一对单引号。而且经测验,要想输出字符串,必须添加单引号,否则会报错
  2. 这里month默认是从0开始的,所以我们要+1
  3. 这里{{}}代表的就是"",所以在v-text=""中,我们在内容里边就不需要再写{{}}了,直接写data值就行
栗子3
<div id='app'>
    <h1>{{ message }}</h1>
    <h1>{{ message.concat('!!!') }}</h1>
    <h1>{{ message? 'has message' : 'no message' }}</h1>
    下面这两个语句报错
    <h1>{{ var message = 'message' }}</h1>
    <h1>{{ if(message){return info} }}</h1> 
</div>
var app = new Vue({
    el : '#app',    // 绑定了上边的id='app'的元素
    data : {
        message : 'hello'
    }   
})

结果:
  hello
  hello!!!
  has message
  第四五句报错

大胡子{{}}里边支持表达式
但不是所有的表达式都能放在里边,只有单个语句的可以,像var和if就不可以
如果想使用if语句的话,用三元运算符代替

栗子4

可以采用对象的形式传递多个数据

<div id="app2">
    <p>姓名 : {{ person.name }}</p>
    <p>性别 : {{ person.sex }}</p>
    <p>年龄 : {{ person.age }}</p>
</div>
var app2 = new Vue({
    el : "#app2",
    data : {
        person : {
            name : '小明',
            sex : '男',
            age : 8
        }
    }
})

结果:
 姓名 : 小明
 性别 : 男
 年龄 : 8



补充一点:

用{{}}的弊端:当网速很慢或者下面的JavaScript写错时,会直接将{{message}}渲染到页面
而使用v-text="message" 如果出错是不显示的
所以在实际开发中用v-text比较多

2. v-html

作用 : 操作元素中的HTML标签
v-text会将元素当成纯文本输出,v-html会将元素当成HTML标签解析后输出

栗子1
<div id="app3">
    {{ message }}
</div>
var app3 = new Vue({
    el : "#app3",
    data : {
        message : "![](img/1.jpg)"
    }
})

结果:输出代表图片名称的字符串,而不是将图片输出
由此可见:{{}}/v-text不能解析html元素,只会照样输出

栗子2
<div id="app3" v-html="message"></div>
var app3 = new Vue({
    el : "#app3",
    data : {
        message : "![](img/1.jpg)"
    }
})

结果 : 成功显示图片


3.gif

注意 : 你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。

3. v-bind

作用 : 绑定标签属性,:后面是标签属性名

栗子1
<div id="app">
    <a href="" v-bind:href="hrefvalue">
        ![](source)
    </a>
</div>
var app = new Vue({
    el : "#app",
    data : {
        hrefvalue : 'http://www.baidu.com',
        source : 'img/1.jpg'
    }
})
5.gif
栗子2
<div id="app2">
    <span v-bind:title = 'message'>
        鼠标悬停几秒钟查看此处动态绑定的提示信息!
    </span>
</div>
var app2 = new Vue({
    el : '#app2',
    data : {
        message : '页面加载于' + new Date()
    }
})

补充v-bind小例子
<div :class="{classA:isOk}">根据条件判断绑定</div>
<div :class="[classA,classB]">绑定多个class值,数组</div>
<div :class="isOk?classA : classB">绑定三元运算符</div>
<p>
    <input type="checkbox" id="isOk" v-model="isOk">
    <label for="isOk">isOk = {{isOk}}</label>
</p>
<div :style="{color:red, fontSize:font}">绑定style</div>
<div :style="styleObject">对象方式绑定style</div>
var app = new Vue({
    el : "#app",
    data : {
        imgSrc : "./img/dele.jpg",
        webUrl : "www.baidu.com",
        className : "a",
        isOk : true,
        classA : 'a',
        classB : 'b',
        red : 'red',
        font : '30px',
        styleObject : { // 将style写成对象写法
            color : 'orange',
            fontSize : '40px'
        }
    }
})

相关文章

  • vue学习笔记2——指令v-text && v-

    一 : 指令的概念: 指令是vue自定义的以v-开头的自定义属性。每个不同的属性都有各自不同的意义和功能 二 : ...

  • 网页设计 - 收藏集 - 掘金

    免费且又精致的 HTML/CSS 站点模板 - 前端 - 掘金&amp;amp;amp;amp;amp;l...

  • Vue基础知识介绍

    本节主要介绍Vue.js开发中的常用指令介绍,后续会持续补充 1. vue中常用的v-指令 v-text // 是...

  • 焦点领动【功能升级】2020年4月第一周:新增全站AMP功能

    新增全站AMP功能 【AMP简介】AMP:Accelerated Mobile Pages,意思是移动页面加速。A...

  • vue指令

    语法: v-指令='{{变量}}' (1)、v-html 可识别 / 可翻译 标签 (2)、v-text ...

  • vue指令用法

    vue指令 指令式带有 v- 前缀的特殊特性v-text和v-html都属于指令将数据和dom做关联,当表达式的值...

  • vue指令用法

    vue指令 指令式带有v-前缀的特殊特性v-text和v-html都属于指令 将数据和dom做关联,当表达式的值改...

  • vue指令用法

    vue指令 指令式带有v-前缀的特殊特性v-text和v-html都属于指令 将数据和dom做关联,当表达式的值改...

  • vue指令用法

    vue指令 指令式带有v-前缀的特殊特性v-text和v-html都属于指令 将数据和dom做关联,当表达式的值改...

  • vue指令

    v-bind特性被称为指令,指令带有前缀v-表示他们是Vue提供的特殊特性 v-text 用来替换插值表达式,如果...

网友评论

  • Van有梦想的人不睡觉:写的太好了,生动又形象,也有深度
    椰果粒:@有梦想的人不睡觉_258a 谢谢
  • ddb59b5bf0c3:😂 栗子图片都那么萌
    椰果粒: @奔跑口巴 😂一般一般
  • bf9db02328b2:请问一下,![]后面加图片src 是什么意思,表示img标签?为什么
    bf9db02328b2:@椰果粒 哦,谢谢啦
    椰果粒: @前端小学生T 其中[]里边是对图片的描述,src是图片的地址
    椰果粒: @前端小学生T 这里是markdown的插入图片的格式,不知道为啥他给解析出来了
  • 椰果粒:v–html例子1中应该显示图片地址而不是把图片显示出来

本文标题:vue学习笔记2——指令v-text && v-

本文链接:https://www.haomeiwen.com/subject/xeqatxtx.html