<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title></title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<style>
[v-cloak]{display: none;}
</style>
</head>
<body>
<!--ref指令:指定唯一标识,vue对象通过$refs属性访问这个元素对象
v-cloak指令:防止闪现,与css配合[v-cloak]:{display:none;} 在vue解析之前存在,解析之后消失。-->
<div id="app">
<p ref="msg">Hello world!</p>
<button @click="handleBtn">点击</button>
<p v-cloak>{{mess}}</p>
<!--3、使用指令: v-my-directive="xxx"-->
</div>
<div id="upper">
<p v-upper-text="txt"></p> //I LOVE YOU,BABY!
<p v-lower-text="txt"></p> //
</div>
<p>------------------------------------</p>
<div id="lower">
<p v-upper-text="txt"></p> //I LOVE YOU,BABY!
<p v-lower-text="txt"></p> //i love you,baby!
<p v-add="add"></p> //这是addpuls
</div>
<script>
//1、注册全局指令
Vue.directive('upper-text',function(el,bind){
console.log(el);
console.log(bind);
el.innerHTML = bind.value.toUpperCase();
});
new Vue({
el: '#app',
data: {
mess: '你好,明天'
},
methods: {
handleBtn() {
console.log(this.$refs.msg.textContent); //Hello world!
console.log(this.$refs.msg.innerHTML); //Hello world!
console.log(this.$refs.msg.innerText); //Hello world!
}
}
});
new Vue({
el:"#upper",
data: {
txt:"I Love You,Baby!"
}
})
new Vue({
el:"#lower",
data: {
txt:"I Love You,Baby!",
add: '这是add'
},
//2、注册局部指令,只在当前vue实例有效
directives: {
'lower-text': function(el,bind) {
el.innerHTML = bind.value.toLowerCase();
},
'add': function(el,bind) {
el.textContent = bind.value +'puls';
}
},
})
</script>
</body>
</html>