Vue组件——vue.component和vue.use区别、全局组件局部组件注册、使用、区别

组件的分类

组件的基本使用

1、vue.component和vue.use的用法

vue.component和vue.use的用法
Vue.use()怎么用
vue封装一个可以通过api调用的组件

注册全局组件
main文件

import VueQuillEditor from 'vue-quill-editor'
// 将富文本编辑器注册为全局组件
Vue.use(VueQuillEditor)
import TreeTable from 'vue-table-with-tree-grid'
Vue.component('tree-table', TreeTable)

axios的导入

Vue.prototype.$http = axios

① vue.use

在这里插入图片描述

② vue.component

在这里插入图片描述

2、全局组件、局部组件

vue 注册全局组件+注册全局组件有啥好处呢
vue引入全局组件和局部组件的区别
【一】Vue的第一个脚手架项目 全局组件和局部组件的定义

  • 似乎我的项目里面,基本上都是每一个页面定义一个组件User.vue,没有涉及到复用之类的
    涉及到了! 是把面包屑这个搞了一个组件breadcrumb.vue 注册成了全局组件?
    在这里插入图片描述> 注册全局组件有啥好处呢
    在这里插入图片描述
① 全局组件的注册
1)注册

【一】Vue的第一个脚手架项目 全局组件和局部组件的定义
在components文件夹下新建一个组件 Users.vue,填写代码
组件显示如下

在这里插入图片描述

<template>
  <div class="users">
    <ul>
        <li v-for="(item,index) in users" :key="index">
            {{item}}
        </li>    
     </ul>
  </div>
</template>

<script>
export default {
  name: 'users',
  data () {
    return {
      users:["1","2","3"]
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>


在这里插入图片描述

2)代码实例

背景: 我的项目里有很多面包屑导航的组件(from element-ui)代码量很大,但是其实只需要把每个导航栏的第二个和第三个值改变一下就好了
(我项目里的面包屑导航都只有三项)
在这里插入图片描述

复用组件(子组件)

在这里插入图片描述

父组件向子组件传递参数(使用props:子组件在props中定义传值类型)

在这里插入图片描述
在这里插入图片描述

对面包屑导航全局组件的注册

在element.js中全局注册了Breadcrumb这个组件
在main.js文件中import了 element.js这个文件
在这里插入图片描述
在这里插入图片描述

② 局部组件的注册
1)注册

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2)代码实例
定义子组件

在这里插入图片描述

定义父组件

在这里插入图片描述

父组件中使用子组件(在父组件中进行子组件局部组件的注册)

在这里插入图片描述
得到效果如下
在这里插入图片描述

③ 自定义组件

在这里插入图片描述
child.vue

<template>
  <div class="container">
    姓名:{{name}}
    年龄:{{age}}
    <button :class = "type">点击</button>
  </div>
</template>

<script>
export default {
  name:'Child',
  props:{ //接受父组件传过来的值
    name:{
      type:String,
      require:true
    },
    age:{
      type:Number
    },
    type:{
      //校验: 判断type是否是success,warning和primary之一。
      validator:function(value){
        return (['success','warning','primary'].indexOf(value)) > -1
      }
    }
  }
}
</script>

4、vue-router的配置结构

router.js文件

vue-router 的基本使用

import Vue from 'vue'
import VueRouter from 'vue-router'

const Login = () => import(/* webpackChunkName: "login_home_welome" */ 'components/login/Login')
const Home = () => import(/* webpackChunkName: "login_home_welome" */ 'components/home/Home')
const Welcome = () => import(/* webpackChunkName: "login_home_welome" */ 'components/home/welcome/Welcome')
const Users = () => import(/* webpackChunkName: "Users_Rights_Roles" */ 'components/home/users/Users')

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    redirect: '/login'
  },
  {
    path: '/login',
    component: Login
  },
  {
    path: '/home',
    component: Home,
    redirect: '/welcome',
    children: [
      {
        path: '/welcome',
        component: Welcome
      },
      {
        path: '/users',
        component: Users
      }
    ]
  }
]
const router = new VueRouter({
  routes
})

router.beforeEach((to, from, next) => {
  // to 将访问哪一个路径
  // from 代表从哪个路径跳转而来
  // next 是一个函数,表示放行
  //   next() 放行 next('/login') 强制跳转
  if (to.path === '/login') return next()
  // 获取token
  const token = window.sessionStorage.getItem('token')
  if (!token) return next('/login')
  next()
})

export default router

main文件

1、./是当前目录 2、…/是父级目录 3、/是根目录

在这里插入图片描述

紧接着在根实例注册router

import Vue from 'vue'
import App from './App.vue'
import router from './router'
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
### 回答1: vue.componentvue.use都是Vue.js中的方法,但是它们的作用不同。 vue.component用于注册全局组件,可以在任何Vue实例中使用。例如: ``` Vue.component('my-component', { // 组件选项 }) ``` 而vue.use用于安装Vue.js插件,可以在Vue实例中使用插件提供的功能。例如: ``` Vue.use(myPlugin) ``` 其中myPlugin是一个Vue.js插件,它需要提供一个install方法。在install方法中,可以注册全局组件、指令、混入等。例如: ``` const myPlugin = { install(Vue, options) { // 注册全局组件 Vue.component('my-component', { // 组件选项 }) // 注册全局指令 Vue.directive('my-directive', { // 指令选项 }) // 注册全局混入 Vue.mixin({ // 混入选项 }) } } ``` 总之,vue.component用于注册全局组件vue.use用于安装Vue.js插件。 ### 回答2: 在Vue.js框架中,Vue.componentVue.use都是用于组件注册的方法。但它们之间有一些区别Vue.componentVue.js用于定义全局局部组件的方法,可以在全局局部范围内注册一个组件,使之在应用中可以被多个组件使用。它接收两个参数:第一个参数是组件的名字,第二个参数是一个选项对象,如下: ``` Vue.component('my-component', { // 组件选项 }) ``` Vue.useVue.js插件的方法,用于在全局范围内注册Vue插件。Vue插件通常是通过一个对象或一个函数暴露出来,该对象或函数要具有一个install方法。使用Vue.use可以安装插件并将该插件自动注册Vue实例的所有组件中。使用Vue.use时,必须将插件作为参数传递给Vue.use方法,如下: ``` // 引入插件 import MyPlugin from 'path/to/MyPlugin.js' // 安装插件 Vue.use(MyPlugin) ``` 总之,Vue.componentVue.use都是用于组件注册的方法,但Vue.component用于组件的定义和注册Vue.use则用于全局插件的注册和安装,二者的用途和效果不同。 ### 回答3: Vue.js是一款非常流行的JavaScript框架,它提供了很多有用的特性和工具来方便我们开发Web应用程序。Vue.js中常用的两个API是vue.componentvue.use。它们都是以插件的形式来扩展Vue.js的功能。虽然它们有一些相似之处,但是也有一些不同之处。本文将从多个方面对它们进行比较,以便更好地理解它们的作用和用法。 1、作用 vue.component的作用是注册一个全局局部组件。这个组件可以被其他组件或者模板文件引用。我们可以为组件设置属性(prop)和事件(event),并可以在组件使用响应式的数据。这样可以实现组件的代码重用和灵活性。 vue.use的作用是注册一个Vue.js插件。插件是一个包含了一些预置功能的JavaScript对象,可以扩展Vue.js全局局部功能。插件一般包含了一些全局的属性、指令、组件以及一些工具方法。使用插件可以方便地扩展Vue.js的功能,而且插件还可以被其他开发者共享和复用。 2、用法 vue.component的用法: 全局注册 Vue.component('component-name', { // options }) 局部注册 new Vue({ // ... components: { 'component-name': { // options } } }) vue.use的用法: Vue.use(plugin) 3、调用方式 vue.component 全局组件可以直接在任何地方使用局部组件只能在注册组件的实例或其子组件使用vue.use 插件可以在Vue根实例之前调用,也可以在Vue根实例之后调用。在调用use方法之后,插件会被安装并立即生效。插件通常是全局可用的,可以在Vue组件使用。 4、局限性 vue.component 局部注册组件不可以在父级组件使用,只能在父级组件的模板中使用。此外,全局组件也有可能会被其他库或者开发者使用同样的名称而冲突。 vue.use 由于插件本质上是一个JavaScript对象,因此插件可以被修改或覆盖。此外,插件还必须暴露一个install方法,否则使用use安装插件时会报错。 总结: vue.componentVue.js组件注册方法,用于注册全局局部组件,以实现组件的代码复用和灵活性。 vue.useVue.js的插件注册方法,用于注册插件以扩展Vue.js全局局部功能,以方便开发者开发和复用Vue.js的扩展功能。 两个API虽然有很多相似之处,但是在实际使用中也存在很多不同之处。了解这些差异和各自的用法可以帮助我们更好地使用Vue.js,提高开发效率和质量。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值