vue填坑之-组件嵌套

参考: https://www.jianshu.com/p/b358cd920efa

需求: 现有一组件,要做功能扩展! 所以要把v-model弄好

原组件(借用一下):

<template>
    <input
      type="checkbox"
      v-bind:checked="checked"
      v-on:change="$emit(‘change‘, $event.target.checked)"
    >
</template>
<script>
export default {
    name: ‘base-checkbox‘,
    model:{
        prop: ‘checked‘,
        event: ‘change‘
    },
    props: {checked: Boolean}
}

如此使用:

<base-checkbox v-model="lovingVue"></base-checkbox>

扩展组件:

<template>
  <base-checkbox v-model="newlovingVue"></base-checkbox>
</template>
<script>
export default {
    name: ‘special-checkbox ‘,
    model:{
        prop:‘lovingVue‘, //要存在于proops
        event:‘change‘ //当组件的值发生改变时要emit的事件名
    },
    props: [‘lovingVue‘],
    data:function(){
        return{//要重新定义一个data,赋值为props中的值,因为组件时单数据流,不能直接修改props
            newlovingVue:this.lovingVue
        }
    },
    watch:{//这里检测data中的值,一旦发生变化就提交事件到父组件
        newlovingVue:function(newVal,oldVal){
            this.$emit(‘change‘,newVal)
        },
     //注:此处原文没有,如果不加上,复杂组件中父组件改变时,无法改变子组件,我就是被坑的不要不要的....
     lovingVue:function(val){
        this.newlovingVue= val;
      },

    }
}
</script>

扩展后使用:

<special-checkbox v-model="lovingVue"></base-checkbox>

亲测真实有效!

vue官网对应文档为:

https://cn.vuejs.org/v2/guide/components.html#在组件上使用-v-model

原文地址:https://www.cnblogs.com/signal/p/11696347.html

时间: 2024-08-01 11:38:24

vue填坑之-组件嵌套的相关文章

vue填坑指南之模板的使用

坑提示:"The template root requires exactly one element" Src下面有个App.vue文件,在index里引用了这个文件以后,我在.vue文件里添加了html,但是加完一个div以后,再加div就没效果了,百思不得其解. 如图: div1能显示,但是div2死活不出来.知道今天我看见了一句提示:   这句话的意思是模板只能有一个根节点!就是说.vue文件里,要有一个根节点div,里面再去包含1和2,就可以了. “试试效果”这个div和之前

vue填坑之全局引入less,scss,styl文件

每次全局引入less文件都是心累的旅程,木有一次能正常启动的,啊,好在最后都解决了,但是原理,本姑娘还是不懂 以全局引入less文件为例 首先安装less的依赖包 用的cnpm install 淘宝镜像文件下载,npm install -g cnpm --registry=https://registry.npm.taobao.org(全局安装) 用build文件下的webpack.base.conf.js里配置less的依赖 { test: /\.less$/, loader: 'style-

vue填坑之引入iconfont字体图标

出现问题: 模块找不到,然后把相对路径改成绝对路径,问题解决了 推荐两个大神的解决思路 https://blog.csdn.net/baidu_36065997/article/details/80685993 https://blog.csdn.net/mxf_bear/article/details/80505295 原文地址:https://www.cnblogs.com/eddina/p/9552713.html

移动端使用mint-ui组件loadmore填坑

??链接地址为 https://mint-ui.github.io/docs/#/en2/loadmore ,这里需要注意引入的方式,我这里是用cdn的方式引入的.请结合官方API阅读本文章. 2.在vue中注册对应组件loadmore ??具体代码位置如下(也可使用全局注册) 123456789101112 new Vue({ el:'#app', data:{ //... }, methods:{ //... }, components:{ loadmore }}) 3.在view结构中写标

Vue.js之组件嵌套小demo

Vue.js之组件嵌套的小demo项目 第一步:初始化一个wabpack项目,这里不在复述.第二步:在components文件夹下新建Header.vue Footer.vue和Users.vue三个组件文件 Header.vue文件: 1 <!--1模板:html结构 --> 2 <template> 3 <header> 4 <h1>{{title}}</h1> 5 </header> 6 </template> 7

Vue.js之组件嵌套

Vue.js中组件嵌套有两种方式 第一种:注册全局组件 例如在components文件夹下新建一个User.vue组件,然后在main.js文件中注册全局组件 1 //注册全局组件 2 Vue.component("users",Users); //前面的users是我们起的名字,后面的Users是我们对应的组件,想要识别这个组件,必须在上面通过import引入, 3 //引入组件 4 import Users from './components/Users' 有了全局组件的话,就可

vue基础——组件(组件嵌套)

介绍 vue中页面是由组件组成的,即以.vue结尾的文件. .vue文件由三部分组成,分别是template.script.style. 分别写html.js.css代码. 组件之间可以互相嵌套.所以就形成了整个页面. 外部引用的都是一些公共的方法和样式这种. 组件嵌套 1.创建一个login组件 2.的在HelloWorld.vue中引用 export default就是可以让外部引用的意思. 原文地址:https://www.cnblogs.com/zhanzhuang/p/9241232.

关于新手入门创建vue项目的填坑报告

经过我反复多次的实践,根据网上各位大佬的经验分享,终于将这个大坑填好了,记录一下,以方便下次填坑用. 基本步骤是根据下面这篇博客:https://blog.csdn.net/bruceyangjie/article/details/70168985: 但是我遇到了自己的问题: 1.进入项目目录之后再npm install,下载依赖文件 2.运行npm run  dev报错如下: 根据下面这片博客:https://www.jianshu.com/p/59fd30d35248的介绍 原因:这是新版w

Vue2.0 新手完全填坑攻略——从环境搭建到发布

本文作者 Jinkey(微信公众号 jinkey-love,官网 https://jinkey.ai) 原文链接 https://jinkey.ai/post/tech/vue2.0-xin-shou-wan-quan-tian-keng-gong-lue-cong-huan-jing-da-jian-dao-fa-bu 文章允许非篡改署名转载,删除或修改本段版权信息转载的,视为侵犯知识产权,我们保留追求您法律责任的权利,特此声明! 感谢 showonne.yubang 技术指导 Demo 地址