vue.js基础(指令)

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

开发环境版本

	<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

mustache语法

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

vue指令
v-text

	<span v-text="message"></span>

等价于

	<span>{{ mseeage }}</span>

v-text会替换掉标签中的文本,如果需要其他文本共存需要做拼接,多此一举,实际开发中很少使用

v-html
类似js中的innerHTML,将传入字符直接作为html渲染

	<div id="app">
		<div v-html:"abc"></div>
	</div>
	var vm = new Vue({
		el: '#app',
		data: {
			abc: '<p>abc</p>'
		}
	})

v-pre
跳过vue的渲染,直接显示原始的Mustache标签,可以加快编译速度

v-cloak
这个指令保持在元素上直到关联实例结束编译
和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕

	[v-cloak] {
		display: none;
	}
	<div v-cloak>
		{{ message }}
	</div>

v-once
只渲染一次,之后重新渲染会视为静态内容直接跳过,优化更新的性能

v-if和v-else

	<a v-if="ok">yes</a>
	<a v-else>no</a>

上述代码中,属性值ok为true,那么yes会被渲染,no会被跳过
同样也可以通过v-else-if来更方便的实现switch语句

v-show
根据条件是否展示元素
和v-if的区别:
v-if的元素被跳过即直接销毁,不存在与DOM中,而v-show只是修改了display的属性

v-for
类似js中的for循环,遍历数组进行渲染‘’

	<ul id="#app">
		<li v-for="item in arr">{{ item }}</li>
	</ul>
	var vm = new Vue({
		el: '#app',
		data: {
			arr: [1,2,3]
		}
	})

v-bind
动态绑定
对象语法:

	<div id="app">
	    <div :class="{'is-active':isActive, 'text-danger':hasError}"></div>
	</div>
	<script>
	    var vm = new Vue({
	        el: '#app',
	        data: {
	            isActive: true,  
	            hasError: false
	        }
	    })
	</script>

数组语法:

	<div id="app">
	    <p :class="[{'is-active':activeClass},errorClass]">12345</p>
	</div>
	<script>
	    var app = new Vue({
	        el: '#app',
	        data: {
	            activeClass: false,
	            errorClass: 'text-danger'
	        }
	    })
	</script>

v-model
双向数据绑定
v-model会忽略所有表单元素的value、checked、selected特性的初始值。因为它选择Vue实例数据做为具体的值

	<div id="app">
	    <input v-model="message">
	    <p>{{ message }}</p>
	</div>
	<script>
	    var app = new Vue({
	        el: '#app',
	        data: {
	            somebody: "abc"
	        }
	    })
	</script>

v-model修饰符(简写 : )

.lazy
默认情况下v-model会同步input框的值和数据,.lazy可以转化为change事件触发时同步
.number
将用户输入的值自动转化为number类型
.trim
过滤用户输入的首尾空格

v-on (简写 @ )
用于监听dom事件
表达式可以为一个方法名

	<div id="app">
	    <button @click="consoleLog"></button>
	</div>

	<script>
	    var app = new Vue({
	        el: '#app',
	        methods:{
	            consoleLog:function (event) {
	                console.log(1)
	            }
	        }
	    })
	</script>

事件修饰符

.stop 阻止事件继续传播
.prevent 事件不再重载页面
.capture 使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理
.self 只当在 event.target 是当前元素自身时触发处理函数
.once 事件将只会触发一次
.passive 告诉浏览器你不想阻止事件的默认行为

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值