Vue-组件开发

什么是组件

组件就是一个个以.vue结尾的文件,vue-cli中的App.vue就是一个根组件
组件的基本格式如下:

<template>
 
</template>
<script>
export default {
	data(){
	    return {
	      a: '小明'
	    }
	  }

}
</script>
<style>

</style>

需要注意的是,这里的数据中心data部分必须定义为函数,这是为了在组件复用时进行数据隔离

自定义组件

  1. 创建vue文件
    自定义一个A组件,那么就创建一个A.vue
    <template>
        <div>A组件</div>
    </template>
    <script>
    export default {
    }
    </script>
    <style>
    
    </style>
    
  2. 引入组件
    在使用组件的父组件里进行引入
    import A from './components/A.vue'
  3. 注册组件
    export default {
      name: 'App',
      components: {
        HelloWorld,
        A
      }
    }
    
  4. 页面使用组件
    <template>
      <A/>
    </template>
    
    父组件完整代码:
    <template>
      <!-- 使用组件 -->
      <A/>
    </template>
    
    <script>
    // 引入组件
    import A from './components/A.vue'
    
    export default {
      name: 'App',
      components: {
        // 注册组件
        A
      }
    }
    </script>
    
    <style>
    
    </style>
    

组件传值

  1. 父组件传递变量给子组件
    声明变量
    父组件在使用子组件时通过自定义变量传值
    <template>
      <HelloWorld msg="Welcome to Your Vue.js App"/>
      <!-- 使用组件,传递变量x的值、动态绑定y的值为userName-->
      <A x="1" :y="userName"/>
    </template>
    
    接受变量
    子组件通过props接受变量,props可以是数组,也可以是对象
    (1)数组接受:props:['z']
    (2)对象接受
    如果props是一个对象,那么这个对象的key是自定义传入参数属性,value是希望传入的参数类型
    props:{
        x:String,
        y:String
    }
    
    还可以配置对象的参数
    required表示参数是否必须,默认为true
    default表示父组件未传值时的默认值
    validator对传入的值进行校验
    props:{
        props:{
        t:{
            type:Number,
            required:true
        },
        q:{
            type:String,
            required:true
        },
        s:{
            type:String,
            default: 'xxx'
        },
        u:{
            type:Number,
            default: 1000,
            validator: function(value) {
                return value < 500
            }
        }
    }
    
    使用变量
    子组件中直接进行使用,和data域中的数据使用方式相同
    <template>
        <div>A组件中获取到父组件的传值x:{{ x }}, {{ y }}</div>
        <B :z="y"/>
    </template>
    
  2. 子组件修改父组件的参数
    子组件不可以直接修改父组件的值,只能传出一个自定义事件,父组件通过调用这个自定义事件后,然后在外部修改值
    在这里插入图片描述
    子组件通过$emit()定义事件:
    <template>
        <div>
            <button type="button" @click="add">按我加1</button>
        </div>
    </template>
    <script>
    export default{
        methods:{
            add(){
                //定义一个doAdd事件
                this.$emit("doAdd")
            }
        }
    }
    </script>
    
    父组件监听自定义的事件:
    <template>
      <!-- 显示逻辑,证明子组件确实修改了父组件传递的值-->
      <C :num="num"/>
      <!-- 监听自定义的doAdd事件-->
      <D :num="num" @doAdd="sum"/>
    </template>
    
    <script>
    import C from './components/C.vue'
    import D from './components/D.vue'
    
    export default {
      name: 'App',
      components: {
        C,
        D
      },
      data() {
        return {
          num: 0
        }
      },
      methods:{
        //doAdd事件的执行逻辑
        sum(){
          this.num++;
        }
      }
    }
    </script>
    
    <style>
    
    </style>
    
    
  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-admin-better 是一个基于 Vue.js 和 Element UI 的后台管理系统解决方案,它提供了丰富的组件和功能,使开发者可以轻松地构建出美观、易用的后台管理系统。以下是 Vue-admin-better 的开发文档: 1. 安装和使用 Vue-admin-better 可以通过 npm 安装,安装命令如下: ``` npm install vue-admin-better --save ``` 安装完成后,可以在项目中引入 Vue-admin-better: ```javascript import Vue from 'vue' import VueAdminBetter from 'vue-admin-better' Vue.use(VueAdminBetter) ``` 引入后即可在项目中使用 Vue-admin-better 的组件和功能。 2. 组件和功能 Vue-admin-better 提供了丰富的组件和功能,以下是一些常用的组件和功能: - 表格组件:提供了丰富的表格功能,如分页、排序、筛选等。 - 表单组件:提供了各种表单元素,如输入框、下拉框、日期选择器等。 - 对话框组件:提供了对话框功能,如确认框、提示框等。 - 菜单组件:提供了菜单功能,可以根据权限动态生成菜单。 - 权限控制功能:可以根据用户权限控制页面和功能的访问。 - 主题定制功能:可以根据需求定制主题,包括颜色、字体等。 3. 示例代码 以下是一个简单的 Vue-admin-better 示例代码: ```vue <template> <div> <va-table :columns="columns" :data="data" /> </div> </template> <script> export default { data() { return { columns: [ { title: '姓名', dataIndex: 'name' }, { title: '年龄', dataIndex: 'age' }, { title: '地址', dataIndex: 'address' } ], data: [ { name: '张三', age: 18, address: '北京市' }, { name: '李四', age: 20, address: '上海市' }, { name: '王五', age: 22, address: '广州市' } ] } } } </script> ``` 以上代码展示了如何在 Vue-admin-better 中使用表格组件,其中 columns 定义了表格的列,data 定义了表格的数据。 4. 总结 Vue-admin-better 是一个强大的后台管理系统解决方案,它提供了丰富的组件和功能,可以帮助开发者快速构建出美观、易用的后台管理系统。以上是 Vue-admin-better 的简要开发文档,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值