`

Vue 组件相关知识学习

 
阅读更多
Vue.js 组件
// 组件(Component)是 Vue.js 最强大的功能之一。
// 组件可以扩展 HTML 元素,封装可重用的代码。
// 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树:

// 注册一个全局组件语法格式如下:
 Vue.component(tagName, options)
// tagName 为组件名,options 为配置选项。注册后,我们可以使用以下方式来调用组件:
<tagName></tagName>
// 全局组件
// 所有实例都能用全局组件。
// 全局组件实例
// 注册一个简单的全局组件 runoob,并使用它:
<div id="app">
    <runoob></runoob>
</div>


// 注册
Vue.component('runoob', {
  template: '<h1>自定义组件!</h1>'
})
// 创建根实例
new Vue({
  el: '#app'
})
</script>


// 局部组件
// 我们也可以在实例选项中注册局部组件,这样组件只能在这个实例中使用:
// 局部组件实例
// 注册一个简单的局部组件 runoob,并使用它:
<div id="app">
    <runoob></runoob>
</div>


var Child = {
  template: '<h1>自定义组件!</h1>'
}

// 创建根实例
new Vue({
  el: '#app',
  components: {
    // <runoob> 将只在父模板可用
    'runoob': Child
  }
})


// Prop
// prop 是父组件用来传递数据的一个自定义属性。
// 父组件的数据需要通过 props 把数据传给子组件,子组件需要显式地用 props 选项声明 "prop":
// Prop 实例
<div id="app">
    <child message="hello!"></child>
</div>

// 注册
Vue.component('child', {
  // 声明 props
  props: ['message'],
  // 同样也可以在 vm 实例中像 "this.message" 这样使用
  template: '<span>{{ message }}</span>'
})
// 创建根实例
new Vue({
  el: '#app'
})


// 动态 Prop
// 类似于用 v-bind 绑定 HTML 特性到一个表达式,也可以用 v-bind 动态绑定 props 的值到父组件的数据中。每当父组件的数据变化时,该变化也会传导给子组件:
// Prop 实例
<div id="app">
    <div>
      <input v-model="parentMsg">
      <br>
      <child v-bind:message="parentMsg"></child>
    </div>
</div>


// 注册
Vue.component('child', {
  // 声明 props
  props: ['message'],
  // 同样也可以在 vm 实例中像 "this.message" 这样使用
  template: '<span>{{ message }}</span>'
})
// 创建根实例
new Vue({
  el: '#app',
  data: {
    parentMsg: '父组件内容'
  }
})


// 以下实例中将 v-bind 指令将 todo 传到每一个重复的组件中:
// Prop 实例
<div id="app">
    <ol>
    <todo-item v-for="item in sites" v-bind:todo="item"></todo-item>
      </ol>
</div>

Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})
new Vue({
  el: '#app',
  data: {
    sites: [
      { text: 'Runoob' },
      { text: 'Google' },
      { text: 'Taobao' }
    ]
  }
})

// 注意: prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。
// Prop 验证
// 组件可以为 props 指定验证要求。
// prop 是一个对象而不是字符串数组时,它包含验证要求:
Vue.component('example', {
  props: {
    // 基础类型检测 (`null` 意思是任何类型都可以)
    propA: Number,
    // 多种类型
    propB: [String, Number],
    // 必传且是字符串
    propC: {
      type: String,
      required: true
    },
    // 数字,有默认值
    propD: {
      type: Number,
      default: 100
    },
    // 数组/对象的默认值应当由一个工厂函数返回
    propE: {
      type: Object,
      default: function () {
        return { message: 'hello' }
      }
    },
    // 自定义验证函数
    propF: {
      validator: function (value) {
        return value > 10
      }
    }
  }
})
// type 可以是下面原生构造器:
// String
// Number
// Boolean
// Function
// Object
// Array
// type 也可以是一个自定义构造器,使用 instanceof 检测。
// 自定义事件
// 父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,就需要使用自定义事件!
// 我们可以使用 v-on 绑定自定义事件, 每个 Vue 实例都实现了事件接口(Events interface),即:
// 使用 $on(eventName) 监听事件
// 使用 $emit(eventName) 触发事件
// 另外,父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件。
// 以下实例中子组件已经和它外部完全解耦了。它所做的只是触发一个父组件关心的内部事件。
// 实例
<div id="app">
    <div id="counter-event-example">
      <p>{{ total }}</p>
      <button-counter v-on:increment="incrementTotal"></button-counter>
      <button-counter v-on:increment="incrementTotal"></button-counter>
    </div>
</div>


Vue.component('button-counter', {
  template: '<button v-on:click="increment">{{ counter }}</button>',
  data: function () {
    return {
      counter: 0
    }
  },
  methods: {
    increment: function () {
      this.counter += 1
      this.$emit('increment')
    }
  },
})
new Vue({
  el: '#counter-event-example',
  data: {
    total: 0
  },
  methods: {
    incrementTotal: function () {
      this.total += 1
    }
  }
})



分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    VUE组件入门

    ### VUE组件入门知识点详解 #### 一、组件概述 - **定义**:在Vue.js中,组件(Component)是一种非常重要的概念,它是Vue.js框架中最强大的功能之一。组件允许开发者将页面分解成独立的、可复用的部分,每个部分都...

    ppt课件-第5章 Vue组件.zip

    Vue.js 是一款流行的轻量级前端JavaScript框架,它以其易用性、灵活性和高性能而...通过学习“第5章 Vue组件”,你将能够熟练掌握Vue组件的创建、使用和优化,进一步提升前端开发技能,构建出更高效、可维护的Vue应用。

    基于antdesign的vue组件

    标题“基于antdesign的vue组件”暗示了我们讨论的主题是关于如何在Vue项目中使用Ant Design Vue库来创建和管理组件。Ant Design Vue遵循蚂蚁金服的UI设计语言,提供了一系列经过精心设计的组件,如按钮、表格、模态...

    系统类应用vue组件

    Vue.js 是一款流行的前端JavaScript框架,它以组件化开发为核心,极大地提高了开发效率和代码复用性。...通过学习和理解这些组件的实现,我们可以更好地掌握Vue组件化开发的最佳实践,并在实际项目中灵活运用。

    Vue简单评论组件代码

    在这个“Vue简单评论组件代码”的案例中,我们将深入探讨Vue组件、过滤器以及计算属性的使用,这些都是Vue开发中的关键概念。 **Vue组件(Components)** Vue组件是Vue的核心特性之一,它允许我们将UI拆分成可复用...

    三开关threeSwitch(三态门)vue组件

    通过学习和理解这个"三开关threeSwitch(三态门)vue组件",开发者可以加深对Vue.js组件化开发的理解,掌握如何构建交互式UI,并熟悉TypeScript在前端开发中的应用。对于想要提升Vue.js技能或者学习TypeScript的人来...

    2024年Vue基础知识总结 4:vue组件化开发,ui前端开发学习课程-vue 全局组件

    前端组件学习 2024年Vue基础知识总结 4:vue组件化开发,ui前端开发学习课程_vue 全局组件

    vue组件化编程-todoList案例.zip

    在“vue组件化编程-todoList案例.zip”中,我们可以深入学习如何使用Vue进行组件化开发,构建一个基本的待办事项(Todo List)应用。这个案例将涵盖以下关键知识点: 1. **Vue组件基础**: - 组件是Vue的核心特性...

    前端-Vue3.x-知识图谱

    Vue3.x是Vue.js框架的最新...总之,“前端-Vue3.x-知识图谱”涵盖了Vue3.x的主要更新和改进,是学习和掌握Vue3.x框架的重要参考资料。通过深入理解和实践这些知识点,开发者可以更好地利用Vue3.x构建高性能的前端应用。

    vue基础知识学习文档 完整版PDF

    本文将介绍Vue的基础知识,包括Vue实例、组件、指令、计算属性、生命周期钩子等。我们将深入了解Vue的核心概念和语法,以及如何使用Vue构建动态和响应式的Web应用程序。此外,我们还将探讨Vue的优点和适用场景,以及...

    Vue学习组件

    在“Vue学习组件”中,我们将深入探讨Vue的组件系统、vue-router的使用,以及其他重要的Vue知识点。 首先,让我们从Vue的组件系统开始。组件是Vue的核心特性,它们是可复用的独立单元,可以视为小型的应用。每个...

    vue时钟组件

    一个Vue组件通常包括`template`(模板)、`script`(脚本)和`style`(样式)三部分。在`template`中定义视图结构,`script`中处理逻辑,`style`中编写样式。 1. **模板(Template)**: 在`template`中,我们可以...

    vueAudiocustomStylepalyer一个audio标签自定义样式的vue组件

    Vue.js 是一款流行的前端框架,它以轻量级、易上手和高效的特性深受开发者喜爱。在描述中提到的 "vueAudio-customStyle-...通过深入研究其源码,你可以学习到 Vue 组件开发、CSS 样式设计以及音频控制相关的知识。

    基于vue的颜色选择器组件

    2. **指令和属性**:Vue组件通常通过props接收外部数据,并通过事件向父组件传递信息。在颜色选择器中,可能有`color`属性用于设置初始颜色,`onChange`事件用于监听颜色改变等。 3. **颜色表示与操作**:颜色在...

    知识图谱可视化,前端 vue.js + d3.js.zip

    而"d3-vue-visualization_master.zip"可能包含了项目的源代码,包括Vue组件、样式文件、配置文件以及示例数据,供开发者参考和学习。 在学习和使用这个项目时,你需要理解Vue组件的生命周期,D3的数据绑定和图形...

    VueUI组件开发环境

    Vue Test Utils结合Jest或Mocha等测试框架,可以编写针对Vue组件的测试用例。 11. **Play和演示**:Vue UI组件开发环境通常会包含一个在线的交互式平台,允许用户实时预览和交互组件,这对于展示和文档编写都非常...

    vue组件使用说明

    Vue.js 是一款非常流行的前端JavaScript...在实际开发中,了解并熟练运用以上知识点,能够帮助你高效地利用Vue组件构建复杂的应用。通过不断实践和学习,你将能够更好地掌握Vue.js的组件系统,提升你的前端开发技能。

    Web前端框架应用:第3章 Vue开发基础-组件进阶.pptx

    第3章 Vue开发基础(下) 全局API 全局配置 ...mixins:mixins是一种分发Vue组件中可复用功能的方式。mixins是一种分发Vue组件中可复用功能的方式。 mixins对象可以包含任何组件选项,将定义的mixins对象

    基于Vue的树形选择组件

    2. **props**:Vue组件可以通过props接收父组件传递的数据。在树形选择组件中,父组件可能通过props传递节点数据、选中状态和其他配置信息。 3. **事件绑定**:Vue.js 使用 `v-on` 或简写 `@` 来监听和处理事件。在...

    Vue基础知识分享

    Vue组件是一种可复用的代码块,可以封装可重用的UI部分。组件间通信可以通过props实现父组件向子组件传递数据,通过自定义事件($emit)实现子组件向父组件传递信息。此外,Vuex是Vue的状态管理库,适用于管理组件...

Global site tag (gtag.js) - Google Analytics