Vue2 自定義指令

示例程序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="Vue-v2.5.22.js"></script>
    <title>Title</title>
</head>
<body>
<div id="app">
    <div v-my-msg="content">11111</div>
</div>

<script>
    // 全局註冊
    var comp = Vue.directive('my-msg', {
        bind: function (el, binding, vnode) {
            var s = JSON.stringify
            el.innerHTML =
                'el: ' + el + '<br>' +//指令綁定的元素
                'binding: ' + s(binding) + '<br>' +
                'name: ' + s(binding.name) + '<br>' +//指令的名字
                'value: ' + s(binding.value) + '<br>' +//指令綁定的數據的值
                'expression: ' + s(binding.expression) + '<br>' +//指令的表達式
                'argument: ' + s(binding.arg) + '<br>' +//指令的參數
                'modifiers: ' + s(binding.modifiers) + '<br>' +//指令的修飾符
                'vnode keys: ' + Object.keys(vnode).join(', ');

            console.log('el', el);
        },
        update: function (newValue, oldValue) {
            var keys = Object.keys(this.modifiers);
            window[this.arg][keys[0]](newValue)
        },
        unbind: function () {

        }
    });
    var vm = new Vue({
        el: '#app',
        data: {
            content: 'there is the content',
        }
    });
</script>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章