Vue的基础学习

一.Vue的计算属性:get和set属性

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Vue的计算属性</title>
    </head>
<body>
    <div id="app">
        <p>初始值:{{name}}</p>
        <!-- 字符串的反转 gnep is-->
        <p>
            反转字符串:{{name.split('').reverse().join('')}}
        </p>
        <p>函数调用:{{this.reverseStr()}}</p>
        <p>计算属性get调用:{{reverse}}</p>
        <button @click="deal()">调用计算属性的set方法</button>
    </div>
    <script src="js/vue.js"></script>
    <script>
        // 创建vue的实例
        let vm = new Vue({
            el: '#app',
            data: {
                name: 'si peng'
            },
            methods: {
                reverseStr() {
                    return this.name.split('').reverse().join('')
                },

                // set方法
                deal() {
                    this.name = "si---si"; // 调用setter方法
                }
            },
            // 计算属性
            computed: {
                // get方法
                reverse() {
                    return this.name.split('').reverse().join('')
                }
            },

                name: {
                    get() {
                        return this.name.split('').reverse().join('')
                    },
                    // set方法
                    set(str) {
                        // alert(0);
                        this.name = str;
                    }
                }
        });
    </script>
</body>
</html>

二.Vue的全局组件:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Vue的全局组件</title>
    </head>
<body>
    <div id="app">
        <!-- 3.调用全局组件 -->
        <my-date></my-date>
        <my-date></my-date>
    </div>

    <div id="app1">
            <!-- 3.调用全局组件 -->
            <my-date></my-date>
            <my-date></my-date>
        </div>
    <script src="js/vue.js"></script>
    <script>
        // 1.创建组件构造器
        let profile = Vue.extend({
            // 1.1模版选项
            template:`
                <div>
                    <input type='date'>
                    <p>今天已经是冬天了</p>
                </div>
            `
        });

        // 2.注册全局的组件
        Vue.component('my-date', profile);

        // 创建vue的实例
        let vm = new Vue({
            el: '#app',
            data: {
                name: 'si peng'
            },
        });

        let vm1 = new Vue({
            el: '#app1',
            data: {
                name: 'si peng'
            },
        });
    </script>
</body>
</html>

三.Vue的局部组件:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Vue的局部组件</title>
    </head>
<body>
    <div id="app">
        <my-date></my-date>
        <my-color></my-color>
    </div>
    <!-- 这里调用不到的,会报错 -->
    <div id="app1">
            <my-date></my-date>
            <my-color></my-color>
        </div>
    <script src="js/vue.js"></script>
    <script>

        // 1.创建组件构造器
        let profile = Vue.extend({
            // 1.1模版选项
            template:`
                <div>
                    <input type='date'>
                    <p>今天已经是冬天了</p>
                </div>
            `
        });

        let profile2 = Vue.extend({
            // 1.1模版选项
            template:`
                <div>
                    <input type='color'>
                    <p>我是色板</p>
                </div>
            `
        });

        // 创建vue的实例
        let vm = new Vue({
            el: '#app',
            data: {
                name: 'si peng'
            },

            components: {
                'my-date': profile,
                'my-color': profile2
            }
        });

        // 创建vue的实例
        let vm1 = new Vue({
            el: '#app1',
            data: {
                name: 'si peng'
            },
        });
    </script>
</body>
</html>

简便写法:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Vue的局部组件</title>
    </head>
<body>
    <div id="app">
        <my-date></my-date>
        <my-color></my-color>
    </div>
    <!-- 这里调用不到的,会报错 -->
    <div id="app1">
            <my-date></my-date>
            <my-color></my-color>
        </div>
    <script src="js/vue.js"></script>
    <script>

        // 1.创建组件构造器
        let profile = Vue.extend();

        let profile2 = Vue.extend({
            // 1.1模版选项
            template:`
                <div>
                    <input type='color'>
                    <p>我是色板</p>
                </div>
            `
        });

        // 创建vue的实例
        let vm = new Vue({
            el: '#app',
            data: {
                name: 'si peng'
            },

            components: {
                'my-date': {
                    // 1.1模版选项
                    template:`
                        <div>
                            <input type='date'>
                            <p>今天已经是冬天了</p>
                        </div>
                    `
                },
                'my-color': profile2
            }
        });

        // 创建vue的实例
        let vm1 = new Vue({
            el: '#app1',
            data: {
                name: 'si peng'
            },
        });
    </script>
</body>
</html>

四.Vue的父子组件:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Vue的全局组件</title>
    </head>
<body>
    <div id="app">
        <parent></parent>
    </div>
    <script src="js/vue.js"></script>
    <script>

        // 1.创建组件构造器
        let child1 = Vue.extend({
            // 1.1模版选项
            template:`
                <div>
                    <img src="images/3.jpeg" width="200"></img>
                </div>
            `
        });

        // 1.创建组件构造器
        let child2 = Vue.extend({
            // 1.1模版选项
            template:`
                <div>
                    <p>思思美美哒!</p>
                </div>
            `
        });

        // 2.父组件构造器
        Vue.component('parent', {
            components: {
                'my-child1': child1,
                'my-child2': child2
            },
            template: `
                <div>
                    <my-child1> </my-child1>
                    <my-child2> </my-child2>
                </div>
            `
        })

        // 创建vue的实例
        let vm = new Vue({
            el: '#app',
            data: {
                name: 'si peng'
            },
        });
    </script>
</body>
</html>

五.Vue的teplate标签和script标签:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Vue的template标签和script标签</title>
    </head>
<body>
    <div id="app">
        <div>
            <my-div>
            </my-div>
        </div>
        <!-- template标签 -->
        <!-- <template id='my-div'>
            <div>我是思思</div>
            <div>我是思思2</div>
        </template> -->
        
        <!-- script标签 -->
        <script type=“text/template” id='my-div'>
                <div>
                    <p>思思,你好啊!</p>
                </div>
        </script>
    </div>
    <script src="js/vue.js"></script>
    <script>

        // 实例化组件
        Vue.component('my-div', {
           
            template: '#my-div'
        });

        // 创建vue的实例
        let vm = new Vue({
            el: '#app',
            data: {
                name: 'si peng'
            },
        });
    </script>
</body>
</html>

开发中使用更多的是template标签定义子组件。

六.Vue中的data选项注意事项:

 // 实例化组件
        Vue.component('my-div', {
           
            template: '#my-div',
            // 1.这样使用会报错!
            // data: {
            //     message: '思思',
            // }
            // 2.这样才是正确的,data必须以函数设置
            data() {
                return {
                    maessage: '思思'
                }
            }
        });

原文地址:https://www.cnblogs.com/pengsi/p/7784361.html