局部生效vue(如何理解vue中的全局组件和局部组件)

2026-02-28 15:15:01 :0

局部生效vue(如何理解vue中的全局组件和局部组件)

大家好,局部生效vue相信很多的网友都不是很明白,包括如何理解vue中的全局组件和局部组件也是一样,不过没有关系,接下来就来为大家分享关于局部生效vue和如何理解vue中的全局组件和局部组件的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

如何理解vue中的全局组件和局部组件


vue中的全局组件指的是可以在应用程序中的任何位置使用的组件,而局部组件指的是未在全局组件中注册的组件,因此只能使用于局部。
在Vue中组件的出现是为了拆分Vue实例的代码量,让我们以不同的组件来划分不同的功能模块。在代码中我们需要何种功能就去调用相应的组件就可以了。接下来要介绍的是全局组件和局部组件的区别,具有一定的参考作用,希望对大家有所帮助。
【推荐教程:Vue教程】
全局组件指的是可以在应用程序中的任何位置使用的组件,包括在其他组件中
局部组件指的是未在全局组件中注册的组件,因此只能在注册它的组件上使用
例:
《div id="app"》
《contact-us》《/contact-us》
《/div》Vue.component(’contact-us’, {data: function() {
return {
email: ’info@mycompany.com’
};
},
template: `
《div》
《h1》Contact Us《/h1》
《p》Please send an e-mail to: {{ email }}《/p》
《/div》
`});new Vue({el: ’#app’,});上述代码的组件实际上是一个全局组件,因为我们在全局Vue对象上使用组件方法去注册它。这样就意味着我们可以随意的使用它。
如何将全局组件设置成局部组件
先将组件对象存储在变量中
var contactUs = {data: function() {
return {
email: ’info@mycompany.com’
};
},
template: `
《div》
《h1》Contact Us《/h1》
《p》Please send an e-mail to: {{ email }}《/p》
《/div》
`};然后在Vue实例中,我们可以添加一个components属性,其中包含我们想要局部注册的组件。此属性应该是一个对象,并包含标记名称和配置对象的键值对。
new Vue({
el: ’#app’,
components: {
’contact-us’: contactUs
}});请注意,在此示例中,已将components属性添加到Vue实例,但也可以将其添加到另一个组件。
运行代码后会看到该组件已经正常工作了。但是为了证明该组件是局部的而不是全局的将添加另一个Vue实例并更改现有实例的选择器。
new Vue({
el: ’#app1’,
components: {
’contact-us’: contactUs
}});new Vue({el: ’#app2’,});《div id="app1"》
《contact-us》《/contact-us》
《/div》
《div id="app2"》
《contact-us》《/contact-us》
《/div》
现在我们只看到一次呈现的联系人组件,即使我们在模板中使用了两次标签。
它出现在第一个Vue实例中,因为我们已将其注册为局部组件,但第二个Vue实例不知道如何处理标记。查看一下浏览器的控制台,浏览器报错说未注册该组件
因此,要注册全局组件,请使用Vue.component方法,对于局部组件,应使用Vue实例或其他组件中的components属性。
总结:

vue 引入全局组件/局部引入

(一 )全局组件引入

1,新建demo.vue

2,在main.js里面引入

//引入全局组件

import commonfrom ’./view/tshy/official/common’

Vue.component(’common’,common)

3,在需要用的组件引入

《common》《/common》

(二),组件引入

import MyComponent from ’./view/tshy/official/common’;

components: {MyComponent}

Vue怎样进行局部作用域&模块化


这次给大家带来Vue怎样进行局部作用域 & 模块化,Vue进行局部作用域 & 模块化的注意事项有哪些,下面就是实战案例,一起来看一下。
CSS Modules 为每一个局部类赋予全局唯一的类名,这样组件样式间就不会相互影响了。如:
/* button.css */
.button {
font-size: 16px;
}
.mini {
font-size: 12px;
}它会被转换为类似这样:
/* button.css */
.button__button--d8fj3 {
font-size: 16px;
}
.button__mini--f90jc {
font-size: 12px;
}当导入一个 CSS 模块文件时,它会将局部类名到全局类名的映射对象提供给我们。就像这样:
import styles from ’./button.css’
// styles = {
// button: ’button__button--d8fj3’,
// mini: ’button__mini--f90jc’
// }
element.innerHTML = ’《button class="’ + styles.button + ’ ’ + styles.mini + ’" /》’vue-css-modules :简化类名映射
下面是一个使用了 CSS Modules 的按钮组件:
《template》
《button :class="{
’global-button-class-name’: true,
: true,
: mini
}"》点我《/button》
《/template》
《script》
import styles from ’./button.css’
export default {
props: { mini: Boolean },
data: () =》 ({ styles })
}
《/script》的确,CSS Modules 对于 Vue 组件是一个不错的选择。但也存在以下几点不足:
你必须在 data 中传入 styles
你必须使用 styles.localClassName 导入全局类名
如果有其他全局类名,你必须将它们放在一起
如果要和组件的属性值绑定,就算局部类名和属性名一样,也要显式指定
对于上面的按钮组件,使用 vue-css-modules 后:
《template》
《button
class="global-button-class-name"
styleName="button :mini"》
点我
《/button》
《/template》
《script》
import CSSModules from ’vue-css-modules’
import styles from ’./button.css’
export default {
mixins: ,
props: { mini: Boolean }
}
《/script》现在:
你不必在 data 中传入 styles ,但得在 mixins 中传入 styles :full_moon_with_face:
你可以跟 styles.localClassName 说拜拜了
将局部类名放在 styleName 属性,全局类名放在 class 属性,规整了许多
局部类名绑定组件同名属性,只需在其前面加上 : 修饰符
修饰符
@button
《button styleName="@button"》按钮《/button》这等同于:
《button styleName="button" data-component-button="true"》按钮《/button》这让你能在外部重置组件的样式:
.form {
font-size: 20px;
}$type
《button styleName="$type"》按钮《/button》这等同于:
《button :styleName="type"》按钮《/button》:mini
《button styleName=":mini"》按钮《/button》这等同于:
《button :styleName="mini ? ’mini’ : ’’"》按钮《/button》
disabled=isDisabled
《button styleName="disabled=isDisabled"》按钮《/button》这等同于:
《button :styleName="isDisabled ? ’disabled’ : ’’"》按钮《/button》使用方法
在 Vue 模板中使用
引入模板外部的 CSS 模块
《template》
《button
class="global-button-class-name"
styleName="button :mini"》
点我
《/button》
《/template》
《script》
import CSSModules from ’vue-css-modules’
import styles from ’./button.css’
export default {
mixins: ,
props: { mini: Boolean }
}
《/script》使用模板内部的 CSS 模块
《template》
《button
class="global-button-class-name"
styleName="button :mini"》
点我
《/button》
《/template》
《script》
import CSSModules from ’vue-css-modules’
export default {
mixins: ,
props: { mini: Boolean }
}
《/script》
《style module》
.button {
font-size: 16px;
}
.mini {
font-size: 12px;
}
《/style》在 Vue JSX 中使用
import CSSModules from ’vue-css-modules’
import styles from ’./button.css’
export default {
mixins: ,
props: { mini: Boolean },
render() {
return (
《button styleName="@button :mini"》点我《/button》
)
}
}在 Vue 渲染函数中使用
import CSSModules from ’vue-css-modules’
import styles from ’./button.css’
export default {
mixins: ,
props: { mini: Boolean },
render(h) {
return h(’button’, {
styleName: ’@button :mini’
}, ’点我’)
}
}相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
使用JS操作图片只留黑白色
封装Vue2路由导航钩子并在实战中使用

在vue组件中如何实现全局注册和局部注册


下面我就为大家分享一篇vue 组件 全局注册和局部注册的实现,具有很好的参考价值,希望对大家有所帮助。
全局注册,注册的组件需要在初始化根实例之前注册了组件;
局部注册,通过使用组件实例选项注册,可以使组件仅在另一个组件或者实例的作用域中可用:
全局组件
js
Vue.component(’tab-title’,{
props:,
template:’《li v-on:click="$emit(\’change\’)"》{{title}}《/li》’
})
Vue.component(’tab-content’,{
props:,
template:’《p》{{content}}《/p》’
})局部组件demo:
html
《p id="app"》
《ul class="navTab"》
《li v-for="(navTab,index) in navTabs" is="tab-title" v-bind:info="navTab.text" v-bind:class="{active:navTab.isActive}" v-on:addactive="switchActive(index)"》《/li》
《/ul》
《p class="tabContent"》
《p v-for="navTab in navTabs" is="tab-content" v-bind:content="navTab.tabContent"
v-bind:class="" v-if="navTab.isActive"》《/p》
《/p》
《/p》js
var app=new Vue({
el: ’#app’,
components: {
’tab-title’: {
props:,//接受父元素传递的参数
template:’《li v-on:click="$emit(\’addactive\’)"》{{info}}《/li》’//点击时传递通过$emit子元素传递给父元素调用 addactive方法(不能使用驼峰写法)
},
’tab-content’:{
props:,
template:’《p》{{content}}《/p》’
}
},
methods:{
switchActive:function(index){
for(var i=0;i《this.navTabs.length;i++){
this.navTabs.isActive=false;
}
this.navTabs.isActive=true;

}
},
data:{
navTabs:[
{
text:"tab1",
isActive:true,
tabContent:’this is tab1 content’
},
{
text:"tab2",
isActive:false,
tabContent:’this is tab2 content’
},
{
text:"tab3",
isActive:false,
tabContent:’this is tab3 content’
}
]
}
});组件实例的作用域是孤立的。这意味着不能再子组件的模板内直接引用父组件的数据。要让子组件可以使用父组件的数据,我们需要通过子组件的props选项。
子组件要显式地用 props 选项声明它期待获得的数据
在模板中,要动态地绑定父组件的数据到字模板的props,与绑定到任何普通的HTMO特性相类似。就是使用 v-bind。每当父组件的数据变化时,该变化也会传递给子组件:
所有的vuejs组件都是被扩展的vue实例
每一个Vue实例都会代理这个实例的data属性对象里的所有的属性
所有的Vue实例本身保罗的属性和方法,都以$开头来区别,对应Vue.set
例如:
vm.$data
vm.$methods
vm.$watch
这个有利于和data属性对象的数据来区分
多有的指令都以v-xxx形式存在:
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
Vue2.0 事件的广播与接收(观察者模式)
vue2.0安装style/css loader的方法
iview table高度动态设置方法

局部安装并使用vue-cli(或者其他npm包)

局部安装并使用vue-cli(或者其他npm包)

新建目录:mkdir vue-cli2

切换目录:cd vue-cli2

初始化项目:npm init -y

安装:npm i vue-cli

查看版本:npx vue -V

使用:npx vue init webpack project

补充:

安装vue-cli3.x:npm i @vue/cli@3

使用:npx vue create project

vue-cli全局安装:npm install vue-cli -g

vue-cli的版本查看:vue -V

vue-cli的3.0+以后使用的不是vue-cli了,如果用以上的安装命令安装的并不是最新版的3.0+的,而如果安装3.0的话就需要使用新的:

npm install @vue/cli -g

如果原来已经安装了vue-cli的话需要先卸载原来的安装:

npm uninstall vue-cli -g

vue定义全局指令和局部指令

全局指令:

调用vue函数对象的directive方法,里面跟两个参数,一个指令名,一个处理函数

’my-directive’:自定义指令名

function(el, binding):处理函数, el: 指令所在的标签对象,binding: 包含指令相关数据的容器对象
局部指令:

里面的数据和全局指令相同,只是语法不同

局部指令要定义在vue实例中
全局指令和局部指令的区别:

全局指令可供整个页面使用,而局部指令只作用于他定义的那个vue实例

将文本内容全部转换为大写字母

定义全局指令

创建一个vue实例
通过自定义指令将文本转换为大写渲染到页面中
定义局部指令
同上操作
在非局部指令定义的实例中使用局部指令

在app2的实例中顶了一个局部指令,在app1中使用此指令,可以看到,页面并没有渲染出内容,所以,局部指令对本实例外的区域无效

以上就是我们为大家找到的有关“局部生效vue(如何理解vue中的全局组件和局部组件)”的所有内容了,希望可以帮助到你。如果对我们网站的其他内容感兴趣请持续关注本站。

局部生效vue(如何理解vue中的全局组件和局部组件)

本文编辑:admin

更多文章:


composer的形容词(experiment怎么读)

composer的形容词(experiment怎么读)

其实composer的形容词的问题并不复杂,但是又很多的朋友都不太了解experiment怎么读,因此呢,今天小编就来为大家分享composer的形容词的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录experi

2025年6月30日 06:00

offset和vlookup组合公式(请问高手,怎么把vlookup的计算结果当成了offset的起点单元格!)

offset和vlookup组合公式(请问高手,怎么把vlookup的计算结果当成了offset的起点单元格!)

大家好,今天小编来为大家解答以下的问题,关于offset和vlookup组合公式,请问高手,怎么把vlookup的计算结果当成了offset的起点单元格!这个很多人还不知道,现在让我们一起来看看吧!本文目录请问高手,怎么把vlookup的计

2026年1月22日 02:45

divano的中文意思(关于歌曲The Mass中某一段的翻译问题!)

divano的中文意思(关于歌曲The Mass中某一段的翻译问题!)

本篇文章给大家谈谈divano的中文意思,以及关于歌曲The Mass中某一段的翻译问题!对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录关于歌曲The Mass中某一段的翻译问题!divano是哪种语言的单词到底是什么意思请

2025年5月30日 00:00

scum荒岛求生手机版(荒野求生手游怎么手动存档 手动存档方法详解分享)

scum荒岛求生手机版(荒野求生手游怎么手动存档 手动存档方法详解分享)

这篇文章给大家聊聊关于scum荒岛求生手机版,以及荒野求生手游怎么手动存档 手动存档方法详解分享对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录荒野求生手游怎么手动存档 手动存档方法详解分享荒野求生手机游戏攻略手机荒野求生卡怎

2026年1月5日 00:45

carries的意思(carry的第三人称单数)

carries的意思(carry的第三人称单数)

今天给各位分享carry的第三人称单数的知识,其中也会对carry的第三人称单数进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录carry的第三人称单数橄榄球中carries什么意思carry的第三人称单数ca

2026年7月6日 03:45

body art(my school英语作文:我爱我的学校)

body art(my school英语作文:我爱我的学校)

大家好,如果您还对body art不太了解,没有关系,今天就由本站为大家分享body art的知识,包括my school英语作文:我爱我的学校的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录my school英语

2025年9月28日 06:00

default中文(default什么中文意思)

default中文(default什么中文意思)

今天给各位分享default什么中文意思的知识,其中也会对default什么中文意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录default什么中文意思default中文是什么意思PS黑白调整工具中cus

2026年5月16日 05:15

hdr建筑设计事务所(介绍几个建筑网站主要是介绍国内外建筑作品的!)

hdr建筑设计事务所(介绍几个建筑网站主要是介绍国内外建筑作品的!)

今天给各位分享介绍几个建筑网站主要是介绍国内外建筑作品的!的知识,其中也会对介绍几个建筑网站主要是介绍国内外建筑作品的!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录介绍几个建筑网站主要是介绍国内外建筑作品的

2026年3月26日 17:45

在线教育网站模板html(如何零基础搭建在线教育网校平台)

在线教育网站模板html(如何零基础搭建在线教育网校平台)

大家好,如果您还对在线教育网站模板html不太了解,没有关系,今天就由本站为大家分享在线教育网站模板html的知识,包括如何零基础搭建在线教育网校平台的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何零基础搭建在

2025年11月4日 17:30

什么时候用inner join(SQL中,用select语句时,为什么有时候要用inner join,有时候不用啊希望好心人帮忙)

什么时候用inner join(SQL中,用select语句时,为什么有时候要用inner join,有时候不用啊希望好心人帮忙)

各位老铁们好,相信很多人对什么时候用inner join都不是特别的了解,因此呢,今天就来为大家分享下关于什么时候用inner join以及SQL中,用select语句时,为什么有时候要用inner join,有时候不用啊希望好心人帮忙的问

2026年7月15日 12:30

cms要不要开(hdmi要不要打开cms)

cms要不要开(hdmi要不要打开cms)

大家好,关于cms要不要开很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于hdmi要不要打开cms的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录hdm

2026年2月8日 02:15

competitive with(请以be honest and kind为题,写一篇英语短文两篇)

competitive with(请以be honest and kind为题,写一篇英语短文两篇)

“competitive with”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看competitive with(请以be honest and kind为题,写一篇英语短文两篇)!本文目录请以be honest and

2026年7月2日 15:30

windowd7虚拟机永恒之蓝浏览器无法显示网页?求助,电脑无法安装永恒之蓝补丁

windowd7虚拟机永恒之蓝浏览器无法显示网页?求助,电脑无法安装永恒之蓝补丁

本篇文章给大家谈谈永恒之蓝,以及windowd7虚拟机永恒之蓝浏览器无法显示网页对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录windowd7虚拟机永恒之蓝浏览器无法显示网页求助,电脑无法安装永恒之蓝补丁windows10可

2026年1月26日 10:45

gradle版本查看(解决Flutter升级后,flutter run 卡在gradle build running的问题)

gradle版本查看(解决Flutter升级后,flutter run 卡在gradle build running的问题)

大家好,关于gradle版本查看很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于解决Flutter升级后,flutter run 卡在gradle build running的问题的知识点,相信应该可以解决大家的一些困惑和问

2026年8月26日 18:30

数据随机变换公式(excel里面怎样设置一组数字在两个数之间随机变化)

数据随机变换公式(excel里面怎样设置一组数字在两个数之间随机变化)

本篇文章给大家谈谈数据随机变换公式,以及excel里面怎样设置一组数字在两个数之间随机变化对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录excel里面怎样设置一组数字在两个数之间随机变化EXCEL中数字能自动变化的公式急求E

2025年6月8日 22:30

怎么下载linux系统镜像文件(Linux操作系统怎么下载!)

怎么下载linux系统镜像文件(Linux操作系统怎么下载!)

今天给各位分享Linux操作系统怎么下载!的知识,其中也会对Linux操作系统怎么下载!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录Linux操作系统怎么下载!linux的系统镜像怎么找,开源镜像站怎么下麒

2025年9月10日 22:15

一般人学vb要多久(学会VB大概要多少时间)

一般人学vb要多久(学会VB大概要多少时间)

这篇文章给大家聊聊关于一般人学vb要多久,以及学会VB大概要多少时间对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录学会VB大概要多少时间vb学习要花多长时间啊哪位告下!我先谢谢了!!!学vb要多长时间呢vb可以做些什么东西学

2025年10月4日 18:15

include string(#include <string.h>什么意思)

include string(#include <string.h>什么意思)

今天给各位分享#include 什么意思的知识,其中也会对#include 什么意思进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录#include 什么意思include怎么用C语言 #include “st

2025年10月19日 10:45

linux命令界面(linux怎么进入命令行)

linux命令界面(linux怎么进入命令行)

本篇文章给大家谈谈linux命令界面,以及linux怎么进入命令行对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录linux怎么进入命令行linux怎么打开命令行窗口linux命令有哪些特点linux命令行的特点linux怎么

2025年10月14日 20:15

php小项目开发(如何使用Zend Studio创建PHP项目)

php小项目开发(如何使用Zend Studio创建PHP项目)

大家好,如果您还对php小项目开发不太了解,没有关系,今天就由本站为大家分享php小项目开发的知识,包括如何使用Zend Studio创建PHP项目的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何使用Zend

2026年7月23日 02:30

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索