vue中局部组件的使用

<!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>

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

<!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>
        `,
        //给子组件定义方法  比如说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/kenD/p/10050092.html

时间: 2024-11-02 12:24:08

vue中局部组件的使用的相关文章

Vue中的组件通信

这两天在学Vue,记录一下我认为比较重要的东西 Vue中的组件通信: 我们可以分为3个步骤来: 1.声明局部子组件,简称 "声子", 2.挂载到dom树上面去,简称:"挂子" 3.进行使用,简称:"用子" 上面写的别人可能看不太明白,毕竟只是我的看法: <body> <div id="app"> </div> </body> 先写一个div,给它一个ID=app <scri

vue中自定义组件(插件)

vue中自定义组件(插件) 原创 2017年01月04日 22:46:43 标签: 插件 在vue项目中,可以自定义组件像vue-resource一样使用Vue.use()方法来使用,具体实现方法: 1.首先建一个自定义组件的文件夹,比如叫loading,里面有一个index.js,还有一个自定义组件loading.vue,在这个loading.vue里面就是这个组件的具体的内容,比如: <template> <div> loading.............. </div

Vue 中数据流组件

好久不见呀,这两年写了很多很多东西,也学到很多很多东西,没有时常分享是因为大多都是我独自思考.明年我想出去与更多的大神交流,再修筑自己构建的内容. 有时候我会想:我们遇到的问题,碰到的界限,是别人给的还是我们自己给的?其实我觉得自己选择的方向是对的,但是有时难免会怀疑,是否有人和我在做一样的事情,我希望找到有趣的伙伴,做一些有趣的事情. Vue 中数据流组件 又将年终了,该做年终总结了呀..最近花了一些时间,升级了一下我们的技术架构,使用 vue 作为我们的框架.延续传统,我们仍然需要开发一些

vue中注册组件

注册组件,其实就是自定义标签(一堆标签堆在一起去现实某一个功能,可以类似成方法去理解) 注册组件,有2种 1:全局注册(全局注册的组件可以在任意的vue实例中使用) 2:局部注册(局部注册的组件只能在当前的vue实例中使用) 例如: 全局组件: 注意:全局组件可以在任意的vue实例中使用,这样就可以实现代码的复用的好处了. 局部组件: 顾名思义:只能在当前注册它的vue实例中使用它. 注意:对于组件的命名,W3C规范是字母小写且包含一个短横杠'-'. 原文地址:http://blog.51cto

VUE注册局部组件

// 局部组件命名规范 /* 1文件夹名大驼峰 MyLocalBtn.vue 2 使用的时候 将驼峰转化为横杠 <my-local-btn></my-local-btn> */ MyLocalBtn.vue局部组件 <template> <div> <div>我输局部组件---{{valuea}}</div> </div> </template> <script> export default {

vue中的组件

组件是Vue最强大的功能之一.组件是一组可被复用的具有一定功能,独立的完整的代码片段,这个代码片段可以渲染一个完整视图结构组件开发如何注册组件?第一步,在页面HTML标签中使用这个组件名称,像使用DOM元素一样.(通常是一个自定义元素).<div id="app"> <my-component></my-component></div>第二步,使用Vue.extend方法创建一个组件var MyComponent = Vue.extend

vue中父子组件传值

vue中,在子组件设置props对象,来接受父组件传来的值 父组件中,:冒号后面的绿色变量必须和子组件中props的变量保持一致 子组件: type设置值的类型 default设置默认值,当没有给子组件传值时使用default里的内容 子传父: $emit 如果是子组件想传递数据给父组件,需要派发自定义事件,使用 $emit 派发,父组件使用v-on接收监控(v-on可以简写成@) 父组件在html代码中这样接收,changeSelect是一个自己在methods中定义的方法 子组件在metho

VUE中父组件向子组件传递数据 props使用

VUE中,子组件是不能直接访问父组件的数据(一般来说,当然如果你要破坏原则也是可以),如下< <body> <div id="fathercomponent"> <ul> <li v-for="item in fatherdatas">{{item}}</li> <!--父组件可以访问它自己的数据--> </ul> <child-component></chi

vue中父组件如何监听子组件值的变化

vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组件传来的值: 3:父组件可以通过this.$refs.name.去访问子组件的值或方法: 4:子组件可以通过this.$parent.去访问父组件的值或方法: 总结了一下,感觉好像挺全面的,好像不缺啥了.... 但是仔细一想,父组件如何去监听子组件的值呢?如何根据子组件中的某个值的变化,父组件作出响