Vue-Vue组件的注册和使用

全局注册:

  要注册一个全局组件,可以使用 Vue.component(tagName, options)

  注意确保在初始化根实例之前注册组件:

html代码:

<div id="example">
  <my-component></my-component>
</div>

JS代码:

// 注册
Vue.component(‘my-component‘, {
  template: ‘<div>A custom component!</div>‘
})

// 创建根实例
new Vue({
  el: ‘#example‘
})
渲染为:
<div id="example">
  <div>A custom component!</div>
</div>
 
局部注册:
 
  不必把每个组件都注册到全局。可以通过某个 Vue 实例/组件的实例选项 components注册仅在其作用域中可用的组件:
var Child = {
  template: ‘<div>A custom component!</div>‘
}

new Vue({
  // ...
  components: {
    // <my-component> 将只在父组件模板中可用
    ‘my-component‘: Child
  }
})
注意点:

  一:DOM 模板解析注意事项

  当使用 DOM 作为模板时 (例如,使用 el 选项来把 Vue 实例挂载到一个已有内容的元素上),你会受到 HTML 本身的一些限制,因为 Vue 只有在浏览器解析、规范化模板之后才能获取其内容。尤其要注意,像 <ul><ol><table><select> 这样的元素里允许包含的元素有限制,而另一些像 <option> 这样的元素只能出现在某些特定元素的内部。在自定义组件中使用这些受限制的元素时会导致一些问题,例如:

<table>
  <my-row>...</my-row>
</table>
  
    自定义组件 <my-row> 会被当作无效的内容,因此会导致错误的渲染结果。变通的方案是使用特殊的 is 特性:
 
<table>
  <tr is="my-row"></tr>
</table>

  二、data 必须是函数

var Child={
        template:‘<p>{{msg}}</p>‘,
        data:{
             msg:‘lizhao‘
        }
    }

  当data时对象格式时,Vue 会停止运行,并在控制台发出警告,告诉你在组件实例中 data 必须是一个函数。因为组件实例共享同一个 data 对象,修改一个变量会影响所有组件!我们可以通过为每个组件返回全新的数据对象来修复这个问题:

var Child={
        template:‘<p>{{msg}}</p>‘,
        data:function(){
            return{
                 msg:‘lizhao‘
            }
        }
    }

原文地址:https://www.cnblogs.com/superlizhao/p/8465850.html

时间: 2024-08-11 13:51:54

Vue-Vue组件的注册和使用的相关文章

vue基础内容{通信,注册,路由,组件}

ES6常用语法 -- 变量 -- var 变量提升 -- let  {} -- const 常量 -- 模板字符串 -- `` -- ${} -- 函数 -- 箭头函数 -- this -- 普通函数取决于函数最近的调用者 -- 箭头函数取决于当前上下文环境 -- 数据的解构 -- 注意语法 -- 类 -- class 定义类 -- extends 继承 -- constructor 构造方法 -- 子类是没有this的 用super() -- export import -- export {

【学习笔记】Vue.js组件

一.组件的注册 组件的注册分为全局注册和局部注册 全局注册 1 Vue.component('my-component', { 2 // 选项 3 }) 局部注册 1 var Child = { 2 template: '<div>A custom component!</div>' 3 } 4 new Vue({ 5 // ... 6 components: { 7 // <my-component> 将只在父模板可用 8 'my-component': Child

vue中组件的四种方法总结

希望对大家有用 全局组件的第一种写法 html: <div id = "app"> <show></show></div> js: 第一步:实例化Vue对象 var app = new Vue({ el:"#app" })     第二步:定义组件 var myComponent = Vue.extend({ template: '<h1>vue全局组件写法一</h1>' });     第三步

vue.js 组件之间传递数据

组件是 vue.js  最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据也成了组件的重要知识点之一.本文就这个知识点和大家一起来扒一扒,希望对大家 学习vue.js有所帮助. 组件 组件与组件之间,还存在着不同的关系.父子关系与兄弟关系(不是父子的都暂称为兄弟吧). 父子组件 父子关系即是组件 A  在它的模板中使用了组件  B ,那么组件  A  就是父组件,组件  B  就是子组件. //  注册一个子组件 Vue.component(

vue.js 组件之间如何实现数据传递?

组件是 vue.js  最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.如何传递数据也成了组件的重要知识点之一.本文和大家分享的就是vue.js  组件之间传递数据相关内容,一起来看看吧,希望对大家 学习vue.js有所帮助. 组件 组件与组件之间,还存在着不同的关系.父子关系与兄弟关系(不是父子的都暂称为兄弟吧). 父子组件 父子关系即是组件 A  在它的模板中使用了组件  B ,那么组件  A  就是父组件,组件  B  就是子组件. //  注册

Vue.js 组件 component

什么是组件? 组件(component)是Vue.js最强大的功能之一,核心目标是扩展HTML元素,封装可重用的代码.我们可以把组件代码按照template.style.script的拆分方式,放置到对应的 .vue  文件中. Vue.js的组件可以理解为预先定义好行为的ViewModel类,一个组件可以预定义很多选项,但最核心的是以下几个: 模板(template) --  模板声明了数据和最终展现给用户的DOM之间的映射关系 初始数据(data) --  一个组件的初始数据状态.对于可复用

vue系列——组件数据通讯(一)

看博之前复习一遍关于组件数据通讯的官方文档:https://vuefe.cn/v2/guide/components.html vue的官方文档本身写的算是比较清楚的,此博作为要点总结和深入补充 关键词:父组件通过props传递数据给子组件,子组件通过event传递数据给父组件 (一)props 1. 基本用法 prop 是父组件用来传递数据的一个自定义属性 //父组件<template> <div id="app"> <myHeader :msg=&qu

Vue动态组件

前面的话 让多个组件使用同一个挂载点,并动态切换,这就是动态组件.本文将详细介绍Vue动态组件 概述 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,可以实现动态组件 <div id="example"> <button @click="change">切换页面</button> <component :is="currentView"></compon

vue.js 组件-全局组件和局部组件

这两天学习了Vue.js 感觉组件这个地方知识点挺多的,而且很重要,所以,今天添加一点小笔记. 首先Vue组件的使用有3个步骤,创建组件构造器,注册组件,使用组件3个方面. 代码演示如下: <!DOCTYPE html> <html> <body> <div id="app"> <!-- 3. #app是Vue实例挂载的元素,应该在挂载元素范围内使用组件--> <my-component></my-compo

vue之组件

组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 要注册一个全局组件,你可以使用 Vue.component(tagName, options).例如: Vue.component('my-component', { template: '<div>A custom component