Vue 组件基础完整示例2

简介
此页面可以直接复制运行,包含以下应用:

Vue slot插槽使用
Vue v-model使用
Vue props使用
父子组件数据传递
element-ui使用
HTML方式注册子组件,可以将子组件数据写在一个js文件中,用标签引入,然后将子组件对象置入components中
Live Demo 在线示例
Live Demo

提示
不建议用HTML模式开发项目,建议使用vue-cli3创建项目,使用单文件组件模式开发
Vue cli3

代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <title>Title</title>
  <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
  <script src="https://cdn.bootcss.com/element-ui/2.10.1/index.js"></script>
  <link href="https://cdn.bootcss.com/element-ui/2.10.1/theme-chalk/index.css" rel="stylesheet">
  <style>
    #app{
      display: flex;
      justify-content: space-between;
    }
    .parent, .child{
      width: 45%;
    }
    .el-card{
      height: 100%;
    }
  </style>
</head>
<body>
<div id="app">
  <div class="parent">
    <el-card>
      <div slot="header">
        <span>父组件</span>
      </div>
      <el-input v-model="ParentMsg"></el-input>
      <el-button type="primary" @click="changeChild" style="margin-top: 30px">改变子组件的msg</el-button>
    </el-card>

  </div>
  <div class="child">
    <el-card>
      <div slot="header">
        <span>子组件</span>
      </div>
      <child1 v-show="display" :parent-msg="childMsg"></child1>
      <child2 @change-data-from-child="changeParent"></child2>
    </el-card>
  </div>
</div>
<script>
  new Vue({
    el: ‘#app‘,
    data(){
      return {
        display:true,
        ParentMsg:"Hello This is Parent",
        childMsg: ‘Hello, 我来自父组件的数据‘
      }
    },
    methods: {
      changeParent(data){
        this.ParentMsg = data
      },
      changeChild(){
        this.childMsg = ‘我被父组件改变了‘
      }
    },
    components: {
      ‘child1‘: {
        props: { //定义子组件的prop,用于父组件传递数据到子组件
          parentMsg: {
            type: String,
            default: ‘‘
          }
        },
        template: ‘<div>\n‘ +
            ‘        <h2 v-show="msgDisplay">{{msg}}</h2>\n‘ +
            ‘        <p>{{parentMsg}}</p>\n‘ +
            ‘        <el-button @click="toggleMsgDisplay" type="success">切换子组件1中的信息显示隐藏</el-button>\n‘ +
            ‘    </div>‘,

        data() {//Vue中component的data必须通过function() return
          return {
            msg: ‘This is a Child Component1!‘,
            msgDisplay: true
          }
        },
        methods: {
          toggleMsgDisplay() {
            this.msgDisplay = !this.msgDisplay
          }
        }
      },
      ‘child2‘:{
        template:"<el-button type=‘primary‘ @click=‘changeParentData‘ style=‘margin-top: 30px‘>我是子组件2按钮,点击改变父组件内容</el-button>",
        data () {
          return {
            msg:"点击了子组件2按钮"
          }
        },
        methods:{
          changeParentData () {
            this.$emit(‘change-data-from-child‘, ‘我来自是子组件2‘) //事件传递用kebab-case风格
          }
        }
      }
    },
  })
</script>

</body>
</html>

原文地址:https://www.cnblogs.com/itgezhu/p/12050102.html

时间: 2024-08-28 16:36:52

Vue 组件基础完整示例2的相关文章

Vue组件基础用法

前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需,使用不同的组件来拼接页面.这种开发模式使前端页面易于扩展,且灵活性高,而且组件之间也实现了解耦.本文将详细介绍Vue组件基础用法 概述 组件是一个自定义元素或称为一个模块,包括所需的模板.逻辑和样式.在HTML模板中,组件以一个自定义标签的形式存在,起到占位符的功能.通过Vue.js的声明式渲染后,

Vue组件基础

gitHub地址:https://github.com/huangpna/vue_learn里面的lesson06 一 vue组件基本实例 举个例子: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>app1</title> </head> <body> <div id=&q

vue组件基础之创建与使用

一.创建组件 <script src="vue.js"></script> <!--引入vue.js文件--> <div id="app"> <Vheader></Vheader> //使用组件 </div> <script> //创建组件 Vue.component('Vheader', { //一定是函数 data:function () { return {} //

vue - 组件基础

1. 全局组件 2. 局部组件 3. 常规属性传值(props属性传值) 4. v-bind传值 4.1 属性取值 4.2 在构造器向组件传值(v-bind) 5. 父子组件调用 5.1 父组件 5.2 子组件 6. 组件注册 官方文档:https://cn.vuejs.org/v2/guide/components-registration.html 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5

开发JavaScript组件(完整示例)

使用JavaScript,按照面向对象的思想来构建组件. 现以构建一个TAB组件为例. 从功能上讲,组件包括可视部分和逻辑控制部分:从代码结构上讲,组件包括代码部分和资源部分(样式.图片等). 组件的特点:高内聚,低耦合(不与其他代码逻辑交叉,可以继承,包含):封装性(隐藏私有方法和变量):可重用性(可反复多次使用,用来组装更复杂的应用). <html> <head> <meta http-equiv="Content-Type" content=&quo

Vue.js-09:第九章 - 组件基础再探(data、props)

一.前言 在上一章的学习中,我们学习了 Vue 中组件的基础知识,知道了什么是组件,以及如何创建一个全局/局部组件.不知道你是否记得,在上一章中,我们提到组件是一个可以复用的 Vue 实例,它与 Vue 实例也只是拥有些许的差异.本章,我们将继续学习组件的相关基础知识,了解 Vue 的组件中的 data.prop 选项的使用. 学习系列目录地址:https://www.cnblogs.com/danvic712/p/9549100.html 仓储地址:https://github.com/Lan

2.基础:Vue组件的核心概念

一.组件基础和注册 组件概念 组件系统是 Vue 的另一个重要概念,他的核心就是封装和复用. 细节 组件的name必须是全局唯一. 二.属性.事件和插槽 组件的三大核心概念:属性.事件和插槽. 属性,事件,插槽好文 1.属性 1.1导言 vue组件 = vue实例 = new Vue(options) 不同的组件只不过是options的不同,90%的工作都是围绕配置options来进行 1.2分类 2.事件 事件冒泡 阻止事件冒泡 3.插槽 分类: 默认插槽 具名插槽 作用域插槽 本质: 作用域

Vue基础篇--8组件基础 component

Vue基础篇--8组件基础 component 1.简单示例 <div id='components1'> <button-conter></button-conter> </div> <script> // 定义一个名为button-conter组件 Vue.component("button-conter",{ data:function () { return { count:0 } }, template:`<b

jQuery EasyUI Datagrid组件的完整的基础DOM结构

该日志由 世纪之光 于2年前发表在datagrid分类下 转载: jQuery EasyUI Datagrid组件的完整的基础DOM结构 | WebUI框架使用参考+ http://www.easyui.info/archives/1157.html 关键字: datagrid源码分析, datagrid结构, easyui源码分析 标题可能有点长,什么叫“完整的基础DOM结构”,这里“基础”的意思是指这个结构不依赖具体数据,不依赖Datagrid的view属性,只要存在Datagrid实例就会