温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

vue中组件怎么用

发布时间:2021-08-10 10:10:30 来源:亿速云 阅读:147 作者:小新 栏目:web开发

这篇文章主要为大家展示了“vue中组件怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中组件怎么用”这篇文章吧。

前言

组件是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。

在vue angular react三大前端框架的大前端时代。许多人选择了vue,在 github 上的star,vue已经超过react的数量了。虽然star并不能代表vue更强,不过在发展速度上看来,vue确实很快。

vue中组件怎么用

在模块化的前端时代,万物皆组件,vue学习组件是必不可少的。

vue中组件怎么用

可是在大多数人熟悉了纯html、jq之后,在初次接触vue的组件时候,却是满脸蒙蔽。
今天咱们以最简单的方式,带vue小白童鞋们,步入组件的世界~

咱们今天讲三种组件使用方式

  • 基本组件

  • 全局组件

  • 构造组件

1. 基本组件四步骤

  • 写好组件(废话~)

  • 在页面种引用组件

  • 在components中声明组件

  • 在页面上使用

咱们以一个button子组件为例

项目src结构:

vue中组件怎么用

组件一般都放在components文件夹下:

1.写好子组件:

<template>  <button class="btn" :>  <slot/> <!-- 插槽 -->  </button> </template> <script> export default {  // 传入子组件的参数写到props  props: {  color: {  type: String, // 颜色参数类型  default: "#000" // 默认黑色  }  } } </script> <style scoped>  .btn {  width: 110px;  height: 60px;  border-radius: 10px;  border: none;  font-size: 15px;  } </style>

2.3.4.父组件:

<template>  <div id="app">  <!-- 4. 在页面上使用 -->  <Button color="red">我是插槽的值</Button>  </div> </template> <script> // 2. 在页面种引用组件 import Button from '@/components/Button.vue' export default {  name: "app",  // 3. 在components中声明组件  components: {  Button  } }; </script>

效果:

vue中组件怎么用

2. 全局组件五步骤

  • 写好组件(还是废话~)

  • 子组件添加install方法

  • 在 main.js 中引用

  • 使用 Vue.use 方法

  • 在页面上使用

1.子组件还是那样~~:

2. 子组件添加install方法

Button.js :

import ButtonComponent from './Button.vue' // 添加install方法 (插件方法) const Button = {  install: function (Vue) {  Vue.component("Button", ButtonComponent);  } } // 导出Button export default Button

当然 你可以处理多个全局组件:

import ButtonComponent1 from './Button1.vue' import ButtonComponent2 from './Button2.vue' import ButtonComponent3 from './Button3.vue' const buttonList = [  ButtonComponent1,  ButtonComponent2,  ButtonComponent3 ]; // 添加install方法 (插件方法) const Button = {  install: function (Vue) {  buttonList.forEach(button=>{  // 这里 使用每个组件的 name 属性作为组件名  Vue.component(button.name, button);  })  } } // 导出Button export default Button

3.4. main.js

import Vue from 'vue' import App from './App.vue' // 3 import Button from '@/components/Button.js' // 4 Vue.use(Button); new Vue({  render: h => h(App), }).$mount('#app')

5. 在页面上使用
app.vue:

<template>  <div id="app">  <!-- 5. 在页面上使用 -->  <Button color="blue">我是全局按钮</Button>  </div> </template>

效果如下:

vue中组件怎么用

2. 构造组件四步骤

  • 写好组件(还**是废话~)

  • vue.extend构建组件

  • 挂载 Vue.prototype

  • 在js中使用

1.写好子组件:

<template>  <p class="Message">{{value}}</p> </template> <script> export default {  data() {  return {   value: "我是一个弹框"  };  } }; </script> <style> .Message {  position: fixed;  bottom: 30px;  width: 200px;  background-color: rgba(0, 0, 0, 0.5);  color: #fff;  border-radius: 10px;  left: 50%;  transform: translateX(-50%);  line-height: 30px;  text-align: center;  font-size: 15px;  animation: messageFade 3s 1; } /* 加个简单动画 */ @keyframes messageFade {  0% {  opacity: 0;  -webkit-transform: translate3d(-50%, 80%, 0);  transform: translate3d(-50%, 80%, 0);  }  16% {  opacity: 1;  -webkit-transform: translate3d(-50%, 0, 0);  transform: translate3d(-50%, 0, 0);  }  84% {  opacity: 1;  -webkit-transform: translate3d(-50%, 0, 0);  transform: translate3d(-50%, 0, 0);  }  100% {  opacity: 0;  -webkit-transform: translate3d(-50%, 80%, 0);  transform: translate3d(-50%, 80%, 0);  } } </style>

2. vue.extend构建组件

Message.js :

import Vue from 'vue'; import Message from './Message.vue'; // 构造组件 const MessageConstructor = Vue.extend(Message); // 设置删除组件 const removeDom = (target) => {  target.parentNode.removeChild(target); }; // 构造组件添加关闭方法 MessageConstructor.prototype.close = function() {  this.visible = false;  removeDom(this.$el); }; const MessageDiv = (options) => {  // 实例化组件  const instance = new MessageConstructor({   el: document.createElement('div'),   // 组件参数,运用到组件内的data   data: options,  });  // 在body添加组件  document.body.appendChild(instance.$el);  Vue.nextTick(() => {   instance.timer = setTimeout(() => {    // 定时关闭组件    instance.close();   }, 3000);  });  return instance; }; export default MessageDiv;

3. 挂载 Vue.prototype

main.js :

import Message from '@/components/Message.js' Vue.prototype.$message = Message;

4. 使用:

<template>  <div id="app">  <Button color="blue" @click.native="msg">我是全局按钮</Button>  </div> </template> <script> import Button from "@/components/Button.vue"; export default {  name: "app",  components: {  Button  },  methods: {  msg() {   // 4. 使用构造组件   this.$message({value:'我是构造组件'});  }  } }; </script>

效果:

vue中组件怎么用

以上是“vue中组件怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue
AI