vue 第十天 (组件的基本使用)

vue 第十天 (组件的基本使用)

1、组件的创建,注册 与 调用

1.1、创建方式 全局创建

全局组件,意味着可以在多个vue实例中使用

<!-- my-cpn1 组件的调用 -->
<div id="vue_one">
    <my-cpn1></my-cpn1>
    <my-cpn1></my-cpn1>
</div>
<script type="text/javascript">
    // 1.创建组件构造器对象
    const cpnC = Vue.extend({
    
    
        template: `<div>
                   <h2>我是标题</h2>
                   <p>我是段落</p>
                   <p>我也是,我还是内容</p>
                   </div>`
    })
    // 2.注册组件(全局组件,意味着可以在多哥vue实例中使用)
    Vue.component("my-cpn1", cpnC)
    // 3.构建 vue 实例
    const vm = new Vue({
    
    
        el: '#vue_one'
    })
</script>

1.2、创建方式 局部创建

<!-- 3.my-c 组件的调用 -->
<div id="vue_one">
    <my-c></my-c>
    <my-c></my-c>
</div>
<script type="text/javascript">
    // 1.创建组件构造器对象
    const cpnC = Vue.extend({
    
    
        template: `<div>
                   <h2>我是标题</h2>
                   <p>我是段落</p>
                   <p>我也是,我还是内容</p>
                   </div>`
    })
    // 2.注册组件 构建 vue
    const vm = new Vue({
    
    
        el: '#vue_one',
        components:{
    
    
            "my-c":cpnC
        }
    })
</script>

2、组件的语法糖(简写)

2.1、创建方式 全局创建组件-----语法糖

全局创建组件 ---------------》语法糖(简写) Vue.component(‘注册的标签’,{})

<!-- 3.my-c 组件的调用 -->
<div id="vue_one">
    <my-c></my-c>
    <my-c></my-c>
</div>
<script type="text/javascript">
    // 1.创建组件构造器对象 注册组件 Vue.component,注册的标签
    const cpnC = Vue.component('my-c',{
    
    
        template: `<div>
                   <h2>我是标题</h2>
                   <p>我是段落</p>
                   <p>我也是,我还是内容</p>
                   </div>`
    })
    //  构建 vue
    const vm = new Vue({
    
    
        el: '#vue_one'
    })
</script>

2.2、创建方式 局部创建--------语法糖

局部创建组件 ---------------》语法糖(简写) components:{“标签”:{template:``}}

<!-- 2.my-c 组件的调用 -->
<div id="vue_one">
    <my-c></my-c>
    <my-c></my-c>
</div>
<script type="text/javascript">
    // 1.构建 vue 创建组件构造器对象 注册组件 components:{"标签":{template:``}}
    const vm = new Vue({
    
    
        el: '#vue_one',
        components: {
    
    
            "my-c": {
    
    
                template: `
                        <div>
                            <h2>我是标题</h2>
                            <p>我是段落</p>
                            <p>我也是,我还是内容</p>
                        </div>`
            }
        }
    })
</script>

2.3 分离写法

2.3.1 局部创建组件

也可以把 template 放到body中

<template id="diaoyong">
    <div>
        <h2>我是标题</h2>
        <p>我是段落</p>
        <p>我也是,我还是内容</p>
    </div>
</template>
<!-- 2.my-c 组件的调用 -->
<div id="vue_one">
    <my-c></my-c>
    <my-c></my-c>
</div>
<script type="text/javascript">
    // 1.构建 vue 创建组件构造器对象 注册组件 components:{"标签":{template:``}}
    const vm = new Vue({
    
    
        el: '#vue_one',
        components: {
    
    
            "my-c": {
    
    
                template: "#diaoyong"
            }
        }
    })
</script>

也可以把 template 放到style中

<!-- 2.my-c 组件的调用 -->
<div id="vue_one">
    <my-c></my-c>
    <my-c></my-c>
</div>

<!--定义 template-->
<script type="text/x-template" id="diaoyong">
    <div>
        <h2>我是标题</h2>
        <p>我是段落</p>
        <p>我也是,我还是内容</p>
    </div>
</script>

<script type="text/javascript">
    // 1.构建 vue 创建组件构造器对象 注册组件 components:{"标签":{template:""}}
    const vm = new Vue({
    
    
        el: '#vue_one',
        components: {
    
    
            "my-c": {
    
    
                template: "#diaoyong"
            }
        }
    })
</script>

2.3.2 全局创建组件

也可以把 template 放到body中

<!--定义 template-->
<template id="woshiid1">
    <div>
        <h2>我是标题</h2>
        <p>我是段落</p>
        <p>我也是,我还是内容</p>
    </div>
</template>

<!-- 3.my-c 组件的调用 -->
<div id="vue_one">
    <my-c></my-c>
    <my-c></my-c>
</div>
<script type="text/javascript">
    // 1.创建组件构造器对象 注册组件 Vue.component
    const cpnC = Vue.component('my-c',{
    
    
        template: "#woshiid1"
    })
    //  构建 vue
    const vm = new Vue({
    
    
        el: '#vue_one'
    })
</script>

也可以把 template 放到 script 中

<!-- 3.my-c 组件的调用 -->
<div id="vue_one">
    <my-c></my-c>
    <my-c></my-c>
</div>


<!--定义 template-->
<script type="text/x-template" id="woshiid1">
    <div>
        <h2>我是标题</h2>
        <p>我是段落</p>
        <p>我也是,我还是内容</p>
    </div>
</script>

<script type="text/javascript">
    // 1.创建组件构造器对象 注册组件 Vue.component
    const cpnC = Vue.component('my-c',{
    
    
        template: "#woshiid1"
    })
    //  构建 vue
    const vm = new Vue({
    
    
        el: '#vue_one'
    })
</script>






花开一千年,花落一千年,花叶永不见

猜你喜欢

转载自blog.csdn.net/weixin_43731532/article/details/114531328