美文网首页
Vue_局部组件5种定义方法

Vue_局部组件5种定义方法

作者: Christoles | 来源:发表于2019-04-12 00:55 被阅读0次

局部组件:需要在实例化对象中通过components属性进行注册。

以下均需引入:
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

第1种方法:

定义模板(script标签 - text / template):

  • 1、直接写在组件里面的 template 属性中。
  • 2、写在 script 标签中,然后在 组件中引用* 这个模板,
  • script 的类型为 text / template ,通过script标签的 id 引用到组件中。

实例:

<script type="text/template" id="tm">
    <div>我是写在script标签里面的模板</div>
</script>
<script type="text/javascript">
    var test2 = {
        template:"#tm"
    }
    var vm = new Vue({
        el:"#app",
        components:{//注册组件
            test2//定义模板
        }
    })
</script>

使用:

<div id="app">
    <test2></test2>
</div>

第2种方法:

相比 第1种方法 script 标签 text/template类型而言,其可以弹出提示功能,相当于改善版

html
<div id="app">
    <tm></tm>
</div>
<template id="tmp2">
    <div>
        <h1>{{msg}}</h1>
    </div>
</template>
javascript
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
//改善 script标签text/template 引进方法
Vue.component("tm",{//在html中渲染tm标签
    template:"#tmp2",
    data(){
        return {
            msg:"hello world !"
        }
    }
})
var vm = new Vue({
    el:"#app"
})
</script>

第3种方法:

直接定义
实例:

<script type="text/javascript">
    var test = {
        template:"<div>{{msg}}</div>",
        data:function(){
            return {
                msg:"我是局部组件"
            }
        }
    }
    var vm = new Vue({
        el:"#app",
        components:{//注册组件
            test//当键名等于键值的时候 test:test,可以缩写成一个
        }
    })
</script>

使用:

<div id="app">
    <test></test>
</div>

第4种方法:

间接定义

<script type="text/javascript">
    var tem = `<div>我是在组件外部定义的模板</div>`,
    var test5 = {
        template:tem
    }
    var vm = new Vue({
        el:"#app",
        components:{//注册组件
            test5
        }
    })
</script>

使用:

<div id="app">
    <test5></test5>
</div>

第5种方法:

外联inp.js文件

<script src="js/inp.js"></script>
//下面是inp.js:
function inp(){
    var obj = {
        props:["value"],//v-model 绑定数据默认是value
        template:`<div :style="inpBox">
            <input @input="$emit('input',$event.target.value)" :value="value" :style="inp"/>
        </div>`,
        //调用内建的 $emit(事件,) 方法 并传入事件名称来触发一个事件
        data:function(){
            return {
                inpBox:{
                    display:"inline-block",
                    border:"1px solid #666"
                },
                inp:{
                    border:"none",
                    outline:"none",
                    padding:"3px"
                }
            }
        }
    }
    return obj;
}

实例化vue

<script type="text/javascript">
    var vm = new Vue({
        el:"#app",
        components:{//注册组件
            inp:inp(),//inp.js里面定义的函数
        },
        data:{
            message:"hello world"
        }
    })
</script>

html中使用:

<div id="app">
    <inp v-model="message"></inp>
    <p>{{message}}</p>
</div>

相关文章

  • Vue_局部组件5种定义方法

    局部组件:需要在实例化对象中通过components属性进行注册。 以下均需引入: 第1种方法: 定义模板(scr...

  • Vue.js组件基础知识

    1.TodoList的基本编写与实现结果 2.定义组件(1)定义全局组件 使用方式: (2)定义局部组件 定义局部...

  • 【Vue.js】 todolist组件拆分(八)

    1、component全局组件 2、局部组件 A、定义局部组件 B、局部组件需要到Vue中声明引用 3、外部向组件...

  • vue中自定义组件、指令、插件

    组件 全局组件 局部组件 自定义插件 提供install方法,挂载到Vue 指令 使用指令实现input自动获取焦...

  • 组件

    注册组件 注册组件分为全局注册和局部注册。 全局注册 step1.用Vue.component()方法定义一个组件...

  • vue 自定义组件(一)全局、局部组件

    vue自定义组件分为局部组件和全局组件 全局组件 全局组件格式template 是模板props 是自定义组件用到...

  • 一篇文章弄懂vue.js中的组件

    组件的使用方法 1.全局注册 2.局部注册 自定义事件—子组件给父组件传递数据 使用v­on 除了监昕 DOM 事...

  • Vue_组件定义及使用

    组件是Vue.js中一个非常强大的功能,可以拓展HTML元素,封装可重用的代码。 1、将组件内容定义到templa...

  • Vue笔记

    一、全局组件和局部组件 1、全局组件 2、局部组件 二、配置组件 数据变量采用方法以便每次返回变化. 三、父子通信...

  • vue 有自定义指令

    vue 的自定义指令,分为全局自定义指令和局部自定义指令,局部自定义指令等价于局部组件。 自定义指令可以对DOM进...

网友评论

      本文标题:Vue_局部组件5种定义方法

      本文链接:https://www.haomeiwen.com/subject/mpnfwqtx.html