vue.js 模板语法(vue 一)

vue是一个类似于占位符的数据引擎,简单理解即为数据替换,先这里理解着

开发中js地址

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

入门例子

  • el为作用域,即有效范围
  • data 被替换的数据
  • methods 函数方式,在js中支持函数式编程,可以理解函数与变量为同一体
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue.js 起步</title>
</head>
<body>
	<h3>Vue.js 起步</h3>

	<div id="vue_app">
		<h4>url : {{url}}</h4>
		<h4>{{details()}}</h4>
	</div>
</body>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
	var vm = new Vue({
		el : '#vue_app',
		data : {
			url : "www.google.com"
		},
		methods : {
			details : function() {
				return this.url + " - 函数返回参数";
			}
		}
	})
	// alert(vm.url);
	// alert(vm.details());
</script>
</html>

测试结果

在这里插入图片描述

插值

文本

数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:
html

<span>Message: {{ msg }}</span>
原始 HTML

双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令:

<span v-html="rawHtml"></span>
特性

Mustache 语法不能作用在 HTML 特性上,遇到这种情况应该使用 v-bind 指令:

<div v-bind:id="dynamicId"></div>
<button v-bind:disabled="isButtonDisabled">Button</button>
使用 JavaScript 表达式

迄今为止,在我们的模板中,我们一直都只绑定简单的属性键值。但实际上,对于所有的数据绑定,Vue.js 都提供了完全的 JavaScript 表达式支持。

{{ number + 1 }}

{{ ok ? 'YES' : 'NO' }}

{{ message.split('').reverse().join('') }}

<div v-bind:id="'list-' + id"></div>
完整例子
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue.js 模板语法</title>
</head>
<body>
	<div id="vue1">
		<h3>普通文本</h3>
		<h4>订单 : {{orderId}}</h4>
		<h3>html,需要借助 v-html属性</h3>
		<!-- <div v-html="htmlText"/> -->
		<h3>html属性,需要借助 v-bind属性</h3>
		<div v-bind:id="'list-' + id">test</div>
		<button v-bind:disabled="isButtonDisabled">Button</button>
		<h3>JavaScript 表达式支持(不支持语法)</h3>
		{{ number + 1 }} 
		{{ ok ? 'YES' : 'NO' }} 
		{{message.split('').reverse().join('') }}
	</div>
</body>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
	var vm = new Vue({
		el : '#vue1',
		data : {
			orderId : '2018017897987',
			htmlText : '<h4>支持html标签哟</h4>',
			id : 'id-1234',
			isButtonDisabled : true,
			number:100,
			ok: false,
			message:'fuck s'
		}
	});
</script>
</html>

测试结果
在这里插入图片描述

指令

指令 (Directives) 是带有 v- 前缀的特殊特性。指令特性的值预期是单个 JavaScript 表达式 (v-for 是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。回顾我们在介绍中看到的例子:

<p v-if="seen">现在你看到我了</p>

这里,v-if指令将根据表达式 seen 的值的真假来插入/移除 <p>元素。

参数

一些指令能够接收一个“参数”,在指令名称之后以冒号表示。例如,v-bind 指令可以用于响应式地更新 HTML 特性:

<a v-bind:href="url">...</a>

在这里 href 是参数,告知 v-bind 指令将该元素的 href 特性与表达式 url 的值绑定。

另一个例子是 v-on 指令,它用于监听 DOM 事件:

<a v-on:click="doSomething">...</a>
修饰符

这个功能暂时搞不懂,不看
修饰符 (Modifiers) 是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。例如,.prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefault()

<form v-on:submit.prevent="onSubmit">...</form>

在接下来对 v-onv-for 等功能的探索中,你会看到修饰符的其它例子

完整例子
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue.js 模板语法</title>
</head>
<body>
	<div id="vue2">
		<p v-if="seen">现在你看到我了</p>
		<a v-bind:href="url">测试url</a>
		<button v-on:click="doSomething">点我一下</button>
	</div>
</body>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
	new Vue({
		el : '#vue2',
		data : {
			seen : true,
			url: 'https://www.google.com.hk/?gws_rd=ssl'
		},
		methods: {
			doSomething : function() {
				alert('get。。。');
			}
		}
	});
</script>
</html>

测试结果
在这里插入图片描述

缩写

v- 前缀作为一种视觉提示,用来识别模板中 Vue 特定的特性。当你在使用 Vue.js 为现有标签添加动态行为 (dynamic behavior) 时,v- 前缀很有帮助,然而,对于一些频繁用到的指令来说,就会感到使用繁琐。同时,在构建由 Vue.js 管理所有模板的单页面应用程序 (SPA - single page application) 时,v- 前缀也变得没那么重要了。因此,Vue.js 为 v-bindv-on 这两个最常用的指令,提供了特定简写:

v-bind 缩写
<!-- 完整语法 -->
<a v-bind:href="url">...</a>

<!-- 缩写 -->
<a :href="url">...</a>
v-on 缩写
<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>

<!-- 缩写 -->
<a @click="doSomething">...</a>
完整代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vue.js 模板语法</title>
</head>
<body>
	<div id="vue2">
		<a :href="url">测试url</a>
		<button @click="doSomething">点我一下</button>
	</div>
</body>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript">
	new Vue({
		el : '#vue2',
		data : {
			url: 'https://www.google.com.hk/?gws_rd=ssl'
		},
		methods: {
			doSomething : function() {
				alert('get。。。');
			}
		}
	});
</script>
</html>

测试结果
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值