单文件组件的局部注册和全局注册详解

单文件组件全局注册

eg App.vue

<template>
	<!-- 这三种写法都可以 -->
	<!-- <nav-bar></nav-bar> -->
	<!-- <NavBar/> -->
	<!-- 引入2个组件时,外面记得多加一个标签,跟标签只有1个 -->
	<div id="container">
		<p>我是p标签</p>
		<NavBar></NavBar>
		<Swiper></Swiper>
	</div>
	
	
</template>

<script>
//step1 引入组件  NavBar别名  './components/NavBar.vue'  引入文件
// 下面的引入都是局部引入
import NavBar from './components/NavBar.vue'
// import Swiper from './components/Swiper.vue'

export default {
	components:{
		// 注册组件  nav-bar 组件名字   NavBar模板名字
		//组件名字和模板别名一致的时候,可以简写,上面渲染模板也可以简写
		//局部注册组件
		// 'nav-bar':NavBar
		NavBar,
		// Swiper
	}
  
}
</script>

<style scoped="scoped">
	p{
		/* 发现把组件里面的p标签样式改了,父组件的样式把子组件的样式改变了 */
		/* style: style标签明确scoped属性, 该样式只在组件内部起作用(样式的组件化); */
		background-color: blue;
	}
</style>

main.js

import Vue from 'vue'
import App from './App.vue'
// 全局注册step1: 在main.js引入
import Swiper from './components/Swiper.vue'

Vue.config.productionTip = false

// var vm = new Vue({
// 	el:'',
// 	data:{
		
// 	}
// })

// 全局注册step2: 在main.js全局注册,全局注册后, 在任何地方都能用
Vue.component('Swiper',Swiper)


new Vue({
  // el:'#app',
  // render:function(h){	  
	 //  return h(App)
  // }
  render: h => h(App),
}).$mount('#app')

eg NavBar.vue

<template>
	<ul>
		<li>php</li>
		<li>vue</li>
		<li>java</li>
		<li><p>我是p标签</p></li>
	</ul>
</template>

<script>
</script>

<style scoped="scoped">
	/*
	  style: style标签明确scoped属性, 该样式只在组件内部起作用(样式的组件化);
	  一般组件中不建议用标签,这也css实际代码量比较大, 效率较低,建议用class样式
	  */
	p{
		background-color: greenyellow;
	}
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值