vue中的全局组件和局部组件的应用

1全局组件

  • solt 内置分发组件
  • 应用见局部组件

2局部组件

2.1局部组件的使用:生子 - 挂子 - 用子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    {{msg}}
</div>
<script src="vue.js"></script>
<script>
    //如果仅仅是实例化vue对象, 既有el又有template,如果template中定义模板内容
    //那么template模板的优先级大于el

    // 首先是有一个 APP根组件, 下面有三个子组件:header, aside, content

    //第一步:  声子 Vue中组件的首字母要大写, 跟标签区分
    //组件中的data必须是个函数,一定要有返回值
    let App = { //跟的是一个对象  这个对象里 就是除了下面的Vue中,el以外的所有属性
        data() {
            return {text: "我是子组件"}
        },

        //第四步:  给子组件里写内容.  当前模板里的标签,只用当前数据属性跟下面的根组件Vue没有关系
        //在<h2>{{text}}</h2>中的{{text}}部分可以放头部组件,内容组件和侧边栏组件 ************
        template: `
        <div id="a">
            <h2>{{text}}</h2>
        </div>
        `,
        //给子组件定义方法  比如说a标签的超链接
        methods:{

        },
    }

    new Vue({
        el: "#app",  //绑定的是上面的id="app"
        data() {
            return {msg: "alex"}
        },

        //与生命周期有关
        //用模板字符串
        //定义模板
        // 第三步:用子  把<App />写下面就是 用子 但是里面的内容需要写到上面子组件里App里
        // template可以不用写 但是要挂载到 el上去
        template: `
        <div class="app">

            <App><App/>
        </div>
        `,

        components: {
            // 第二步:   挂子 父组件Vue里不仅是可以挂载一个App,还可以挂载其他组件
            App   //如果key和value一样,可以只写App 替代App:App

        }
    })
</script>
</body>
</html>

2.2局部组件的使用更改 以及全局组件的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <App></App>
</div>
<script src="vue.js"></script>
<script>
    //如果仅仅是实例化vue对象, 既有el又有template,如果template中定义模板内容
    //那么template模板的优先级大于el

    // 全局组件 ***  第一个参数是组件的名字,第二个参数是options
    // 全局组件声明之后,可以再任意的组件里使用, 放到别的组件之后,就成了别的组件的子组件了
    // 使用内置组件slot进行分发  让让别的组件中的Vbtn按钮显示不同的名称  ******
    Vue.component("Vbtn",{
        data(){ return {}},
        template:`<button><slot>按钮</slot></button> `,
    })

    // 首先是有一个 APP根组件, 下面有三个子组件:header, aside, content

    //子组件2
    //第一步:生子2  挂子往App里挂, 不需要挂Vue里
    let Vheader = {//对象
        data(){
            return {}
        },
        //template 是一个组件模板,一定要用一个根(父)元素包裹起来,所以一定要有一个div闭合****
        template:`
        <div>
        <h2>生子是在子组件中</h2>
        <h2 style="color:red">挂子和用子是在父组件中</h2>
        <Vbtn></Vbtn>
        </div>
        `,

    }

    //第一步:  声子   Vue中组件的首字母要大写, 跟标签区分
    //组件中的data必须是个函数,一定要有返回值
    let App = { //跟的是一个对象  这个对象里 就是除了下面的Vue中,el以外的所有属性
        data() {
            return {text: "我是子组件"}
        },

        //第四步:  给子组件里写内容.  当前模板里的标签,只用当前数据属性跟下面的根组件Vue没有关系
        //在<h2>{{text}}</h2>中的{{text}}部分可以放头部组件,内容组件和侧边栏组件 ************
        // 第三步:用子2   <Vheader></Vheader>,  下一步去对应模板Vheader的template里写内容
        template: `
        <div id="a">
            <h2>{{text}}</h2>
            <Vheader></Vheader>
            <Vbtn>登录</Vbtn>
            <Vbtn>注册</Vbtn>
            <Vbtn>提交</Vbtn>
        </div>
        `,
        // template里的标签必须有一个父标签包裹
        //给子组件定义方法  比如说a标签的超链接
        methods:{
        },
        components:{
            // 第二步:挂子2
            Vheader
        },
    }

    new Vue({
        el: "#app",  //绑定根元素  是上面的id="app"
        data() {
            return {msg: "alex"}
        },

        //根组件中  可以把template删除 直接在id = "app"的div中使用
        // 子组件中的template 不能删除,因为子组件中的结构最终会渲染到id="app"的div里面<App></App>

        components: {
            // 第二步:   挂子 父组件Vue里不仅是可以挂载一个App,还可以挂载其他组件
            App   //如果key和value一样,可以只写App 替代App:App

        }
    })
</script>
</body>
</html>

原文地址:https://www.cnblogs.com/bigox/p/11630009.html

时间: 2024-10-29 22:27:56

vue中的全局组件和局部组件的应用的相关文章

详解vue全局组件与局部组件使用方法

这篇文章主要为大家详细介绍了vue全局组件与局部组件的使用方法,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. vue全局/局部注册,以及一些混淆的组件main.js入口文件的一些常用配置, 在入口文件上定义的public.vue为全局组件,在这里用的是pug模版 .wraper 的形式相当于<div class=wraper></div> -main.js文件 **main.js入口文件的内容** import Vue from 'vue' im

Vue组件之全局组件与局部组件

组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展.个人认为就是一个可以重复利用的结构层代码片段. 全局组件注册方式:Vue.component(组件名,{方法}) eg: <body> <div id="app"> <my-component>

vue的全局组件和局部组件

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>全局组件.局部组件</title> <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script></head><body><div id="a

Vue:全局组件与局部组件

全局组件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="seg1"> <alert></alert> </div> <script

vue组件的原始初始化方式以及全局组件与局部组件的区分

<!DOCTYPE html> <html> <head> <title></title> </head> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <body> <div id="app1"> <!-- 3:使用组件 --> 全局组件: <cpn>&l

TZ_16_Vue定义全局组件和局部组件

1.定义全局组件 我们通过Vue的component方法来定义一个全局组件. <div id="app"> <!--使用定义好的全局组件--> <counter></counter> </div> <script src="./node_modules/vue/dist/vue.js"></script> <script type="text/javascript&q

Vue.js中全局组件和局部组件的编写差异和注意事项

全局组件的编写方式: <div id='app'> <runoob></runoob> </div> <script> Vue.component('runoob',{ template:'<h1>Hello World!</h1>' }) new Vue({ el:'#app', }) </script> 局部组件的编写方式: <div id='app'> <runoob></r

vue.js中的全局组件和局部组件

组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能. 组件的使用有三个步骤: 1.创建组件构造器 2.注册组件 3.使用组件 先来看一段代码: <!DOCTYPE html> <html> <body> <div id="app"> <!-- 3. #app是Vue实例挂载的元素,应该在挂载元素范围内使

vue引入全局组件和局部组件的区别以及全局注册公共函数

一,先看看全局组件的引用,就拿最常用的全局的暂无数据来举例,看看全局的是如何实现的. Step1,首先在components创建一个公共的目录,NoDatas目录里边包含index.vue和index.js,index.vue用来写公共的页面,index.js用来导出这个组件. <template> <!-- NoDataWords 可以灵活控制每个页面显示的内容 --> <!-- NoDataHeight 可以灵活控制每个页面的高度 --> <!-- 如果你的页