怎么理解Vue中的模板语法插值和指令(vue,编程语言)

时间:2024-05-05 06:18:55 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

怎么理解Vue中的模板语法插值和指令

Vue有很多模板语法特别好用,就是在HTML中写一些Vue定义的一些模板语法,可以快速的展现数据,绑定方法等。这也就是Vue上手很快的原因之一。

1. 模板的理解

我们先来理解理解什么是模板?

模板就是动态html页面,这里面包含了一些js语法代码

Vue的模板语法分为两种,分别是:

  • 【插值语法】双大括号表达式 (“Mustache”语法)【一个】

  • 【指令语法】指令(以v-开头的自定义标签属性)【很多】

1、插值语法:

  • 功能:用于解析标签体内容,向页面输出数据

  • 写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性,可以调用对象的方法

  • 备注:里面写js表达式:有返回值的js代码,而不是js语句

2、指令语法:

  • 功能:用于解析标签(包括:标签属性、标签体内容、绑定事件.....)

  • 举例:v-bind:href="xxx" 或 简写为 :href="xxx",xxx同样要写js表达式,且可以直接读取到data中的所有属性

  • 备注:Vue中有很多的指令,且形式都是:v-????


下面我们来介绍几个常用的指令语法。

2. 指令语法:强制数据绑定 v-bind:

功能:指定变化的属性值

完整写法

v-bind:xxx='yyy'//yyy会作为表达式解析执行

简洁写法

:xxx='yyy'

单向数据绑定

  • 语法:v-bind:href ="xxx" 或简写为 :href ="xxx"

  • 特点:数据只能从 data 流向页面

双向数据绑定 指令 v-model

  • 语法:v-mode:value="xxx" 或简写为 v-model="xxx"

  • 特点:数据不仅能从 data 流向页面,还能从页面流向 data

3. 指令语法:绑定事件监听 v-on:

功能:绑定指定事件名的回调函数

完整写法

v-on:click='xxx'v-on:keyup='xxx(参数)'v-on:keyup.enter='xxx'

简洁写法

@click='xxx'@keyup='xxx'@keyup.enter='xxx'

4. v-text与v-html

v-text

  • 作用:向其所在的节点中渲染文本内容。

  • 与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会。

v-html

1、作用:向指定节点中渲染包含html结构的内容。

2、与插值语法的区别:

  • (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。

  • (2).v-html可以识别html结构。

3、严重注意:v-html有安全性问题!!!!

  • (1). 在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击。

  • (2). 一定要在可信的内容上使用v-html,永不要用在用户提交的内容上!

<body><divid='app'><h3>1.大括号表达式</h3><p>{{msg}}</p><!--textContent--><p>{{msg.toUpperCase()}}</p><pv-html="msg"></p><!--innerHTML--><pv-text="msg"></p><!--textContent--><pv-text="msg.toUpperCase()"></p><h3>2.指令一:强制数据绑定</h3><imgsrc="imgUrl"alt="Vue"><!--无法显示图片,没有识别成js表达式--><imgv-bind:src="imgUrl"alt="Vue"><!--属性值识别成js表达式--><img:src="imgUrl"alt="Vue"><h3>3.指令二:绑定事件监听</h3><buttonv-on:click="test1">test1</button><button@click="test1">test1</button><button@click="test2('abc')">test2</button><!--可以传参数--><button@click="test2(msg)">test2</button></div><scriptsrc="../js/vue.js"></script><script>newVue({el:'#app',data:{msg:'<ahref="http:www.baidu.com">IWillBack!</a>',imgUrl:"https://cn.vuejs.org/images/logo.png"},methods:{test1(){alert('heheh');},test2(content){alert(content);}}})</script></body>

怎么理解Vue中的模板语法插值和指令

5. 条件渲染指令

移除标签删除

  • v-if

  • v-else

写法:

  1. v-if="表达式"

  2. v-else-if="表达式"

  3. v-else="表达式"

适用于:切换频率较低的场景。特点:不展示的DOM元素直接被移除。注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被“打断”。

添加样式隐藏(display: none)

  • v-show

写法:v-show="表达式"适用于:切换频率较高的场景。特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉

【备注】使用v-if的时候,元素可能无法获取到,而使用v-show一定可以获取到。

比较v-if与v-show

v-if是控制元素是否加载到页面上(有性能开销) v-show是控制元素的显示与隐藏 (初始创建时加载一次)

  • 如果需要频繁切换 v-show 较好

  • 当条件不成立时, v-if 的所有子节点不会解析

<body><divid="demo"><pv-if="ok">成功了</p><!--移除标签删除--><pv-else>失败了</p><pv-show="ok">又成功了</p><!--添加样式隐藏--><pv-show="!ok">又失败了</p><button@click="ok=!ok">切换</button></div><scriptsrc="../js/vue.js"></script><script>newVue({el:'#demo',data:{ok:false,}})</script></body>

怎么理解Vue中的模板语法插值和指令

6. 总结

一些常用的指令

  • v-text : 更新元素的 textContent

  • v-html : 更新元素的 innerHTML

  • v-if : 如果为true, 当前标签才会输出到页面

  • v-else: 如果为false, 当前标签才会输出到页面

  • v-show : 通过控制display样式来控制显示/隐藏

  • v-for : 遍历数组/对象

  • v-on : 绑定事件监听, 一般简写为@

  • v-bind : 强制绑定解析表达式, 可以省略v-bind

  • v-model : 双向数据绑定

  • ref : 为某个元素注册一个唯一标识, vue对象通过$refs属性访问这个元素对象

  • v-cloak : 使用它防止闪现表达式, 与css配合: [v-cloak] { display: none }

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:怎么理解Vue中的模板语法插值和指令的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:php有哪些好用的函数下一篇:

11 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18