Skip to main content

The use of vue components

 Vue components can be divided into global components and local components. Global components are not used much, but local components are used more. The creation method is to use Vue.extend(options) to create, where options and the options passed in when new Vue(options) are almost the same, but there are also some differences: do not write el, data can no longer be written as an object, and must be written as a function. Generally, partial components are used more in single-page applications. Partial components belong to a Vue instance and are added (mounted) through comopnents. Registering components: local registration: you need to pass in the components option when new Vue, global registration: Vue.component ('component name', component), the component can be defined and placed, or it can be directly in the form of an object. Written in Vue.component.

Here are the steps and methods to actually define the registered usage component:

  <div id="app">
        <school></school>
        <hr>
        <student></student>
        <hello></hello>
    </div>
    //
    <div id="app2">
        <hello></hello>
    </div>
    <div id="app3">
        <app/>
    </div>
    <script>
     Vue.config.productionTip=false
        Vue.component("hello",{
            name:"HHHH",
            template:`
            <div>
            <div>{{helloName}}</div>
            <button @click="show">click</button>
            </div>
            `,
            data(){
                return{
                    helloName:"hellollll"
                }
            },
            methods: {
                show(){
                    alert("hahaha");
                }
            },
        });
        //
        const person={
            template:`
            <div>
                Page:<input v-model="personAge"/>
                </div>
            `,
            data(){
                return{
                    personAge:100
                }
            }
        };
        //
        const school=Vue.extend({
            template:`<div>
                <p>{{schoolName}}</p>
                <p>{{schoolAddr}}</p>
                </div>`,
            data(){
                return{
                    schoolName:"helloSChool",
                    schoolAddr:"beijing"
                }
            }
        });
        const student=Vue.extend({
            template:`<div>
                <p>{{studentName}}</p>
                <p>{{studentAge}}</p>
                <person></person>
                // <hello></hello>
                </div>`,
            data(){
                return{
                    studentName:"aaa",
                    studentAge:18
                }
            },
            components:{
                person:person,
            }
        });
        // console.log(student instanceof VueComponent);
        // console.log(student.__proto__ instanceof Vue);
        // console.log(student.__proto__);


//
        const app={
            template:`
            <div>
                <hello></hello>
                <school></school>
                <student></student>
                </div>`,
                components:{
                    school:school,
                    student:student
                }
        }

        var vm = new Vue({
            el: '#app',
            // data: {},
            // methods: {},
            components:{
                school:school,
                student:student
            }
        });
        // console.log(student instanceof vm);
        console.log(student.__proto__===vm.prototype);//false
        console.log(student.__proto__.__proto__===vm.__proto__);//false
        console.log(student.__proto__===Vue);//false
        console.log(student.prototype.__proto__===Vue.prototype);//true

        new Vue({
            el:"#app2",
        })
        new Vue({
            el:"#app3",
            components:{
                app:app
            }
        });
    </script>

Comments

Popular posts from this blog

vue routing global guard beforeEach and afterEach

 Global routing front guard (beforeEach) This function is used the most. Its function is to perform permission-related verification before routing jumps. This function contains three parameters: to: the object of the target route that is about to enter; from: the route that the current route is leaving; next: confirm the release. It can be used to log in and register, to determine whether there is a token before logging in, and release if it exists. , if it does not exist, it will not be released. The post routing guard (afterEach), its role is to trigger after the routing jump.

ES6 arrow functions

 In ES6, in addition to the new features of let and const, arrow functions are the most frequently used new features. But this feature is not unique to ES6. Arrow functions, as the name suggests, are functions defined using arrows (=>) and belong to a class of anonymous functions. It allows us to write smaller function syntaxes. The code of arrow functions is simpler and more flexible to write.