Vue基础---->VueJS的使用(二)

  组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。今天我们就来学习一下。回忆永远是惆怅。愉快的使人觉得:可惜已经完了,不愉快的想起来还是伤心。

vue中的重要特性

一、vue中的自定义组件

html的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue1</title>
    <script type="text/javascript" src="../vue.js"></script>
</head>
<body>
    <div id="app">
        <my-component my-name="huhx"></my-component>
    </div>
    <script type="text/javascript" src="js/vue3.js"></script>
</body>
</html>

vue3.js的代码:

// 定义
var MyComponent = Vue.extend({
    template: '<div>A custom component!{{myName}}</div>',
    props: ['myName']
})

// 注册
Vue.component('my-component', MyComponent);

// 创建根实例
var ap = new Vue({
    el: '#app',
})

运行效果如下:

二、vue中的自定义指令

 html的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue4</title>
    <script type="text/javascript" src="../vue.js"></script>
</head>
<body>
    <div id="app">
         <div v-my-directive="someValue">{{msg}}</div>
    </div>
    <script type="text/javascript" src="js/vue4.js"></script>
</body>
</html>

vue4.js:

Vue.directive('my-directive', {
    bind: function() {
        // 准备工作
        console.log("bind function.");
    },
    update: function(newValue, oldValue) {
        // 值更新时的工作
        console.log("new: " + newValue + ", old: " + oldValue);
    },
    unbind: function() {
        // 清理工作
        console.log("unbind function.");
    }
});

var demo = new Vue({
    el: '#app',
    data: {
        msg: 'hello!'
    }
})

运行的效果:

console打印的日志:

bind function.
new: undefined, old: undefined

三、vue中的自定义过滤器

html的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue5</title>
    <script type="text/javascript" src="../vue.js"></script>
</head>
<body>
    <div id="app">
        <span v-text="message | reverse"></span>
    </div>
    <script type="text/javascript" src="js/vue5.js"></script>
</body>
</html>

js的代码如下:

Vue.filter('reverse', function (value) {
  return value.split('').reverse().join('')
});

var demo = new Vue({
    el: '#app',
    data: {
        message: 'hello!'
    }
});

运行的效果如下:

四、修改上述的过滤器,使它可以处理value为空时,返回一个默认期待的数值。

  • js的代码:
Vue.filter('reverseFilter', function(string, defaultValue) {
    if (!string) {
        return defaultValue;
    }
    return string.split('').reverse().join('');
});

html的代码:页面显示为hello world

<div>
  {{testFilter | reverseFilter('hello world')}}
</div>

data() {
    return {
        testFilter: null,
    }
}

关于vue中过滤器的详细讲解,可以参考博客:https://zhuanlan.zhihu.com/p/27445461

友情链接

原文地址:https://www.cnblogs.com/huhx/p/basevue2.html