首页 > 编程语言 >24-Vue组件化编程-单文件组件

24-Vue组件化编程-单文件组件

时间:2023-10-16 23:00:36浏览次数:59  
标签:24 school Vue schoolName vue export 组件 import

单文件组件
一个文件中只包含有1个组件

 

组件名的注意事项

一个单词组成:

1)第一种写法(首字母小写):school

2)第二种写法(首字母大写):School,推荐

多个单词组成:

1)第一种写法(kebab-case命名):my-school

2)第二种写法(CamelCase命名):MySchool,推荐

 

创建一个school.vue文件,通常含有以下三种标签:

1)<template></template>:组件的结构

2)<script></script>:组件交互相关的代码(数据、方法)

3)<style></style>:组件的样式

 

这里需要注意,既然写成单文件组件,也就代表后面通常会使用import的方式导入组件,因此school.vue文件也需要通过export 进行暴露

暴露的三种方式,分别为分别暴露、统一暴露和默认暴露

第一种:分别暴露(写在<sctipt></script>中)

在导入时,使用 import {???} from ??? 的方式

export const school = Vue.extend({
    data(){
        return {
            schoolName:'尚硅谷',
            address:'北京',
        }
    },
    methods:{},
})

第二种:统一暴露(写在<sctipt></script>中)

在导入时,使用 import {???} from ??? 的方式

const school = Vue.extend({
    data(){
        return {
            schoolName:'尚硅谷',
            address:'北京',
        }
    },
    methods:{},
})
export {school}

第三种:默认暴露(推荐)

在导入时,使用 import ??? from ??? 的方式

const school = Vue.extend({
    data(){
        return {
            schoolName:'尚硅谷',
            address:'北京',
        }
    },
    methods:{},
})
export default school

一般使用默认暴露,因为使用默认暴露在导入时,直接使用 import ??? from ??? 就可以了。但是使用分别暴露和统一暴露都需要这样写 import {???} from ??? 。

使用默认暴露时,可以不用中转变量,方式如下:

export default Vue.extend({
    data(){
        return {
            schoolName:'尚硅谷',
            address:'北京',
        }
    },
    methods:{},
})

// 进一步简写,省去Vue.extend()
export default {
    data(){
        return {
            schoolName:'尚硅谷',
            address:'北京',
        }
    },
    methods:{},
}

 

单文件组件的小案例,首先创建以下文件

School.vue

<template>
  <!--组件的结构-->
  <div class="demo">
    <h2>学校名称:{{schoolName}}</h2>
    <h2>学校地址:{{address}}</h2>
    <button @click="showName">点击提示学校信息</button>
  </div>
</template>

<script>
  // 组件交互相关的代码(数据、方法)
  export default {
    name:"School",

    data(){
      return{
        schoolName:"东华理工大学",
        address:"江西南昌"
      }
    },
    methods:{
      showName(){
        alert(this.schoolName)
      }
    }
  }

</script>

<style>
   // 组件的样式
   .demo{
     background-color: orange;
   }
</style>

Student.vue

<template>
  <!--组件的结构-->
  <div>
    <h2>学生姓名:{{name}}</h2>
    <h2>学生年龄:{{age}}</h2>
  </div>
</template>

<script>
  // 组件交互相关的代码(数据、方法)
  export default {
    name:"Student",

    data(){
      return{
        name:"马铃薯",
        age:26
      }
    }
  }
</script>

<style>
   // 组件的样式
   .demo{
     background-color: orange;
   }
</style>

App.vue

<template>
  <div>
    <!--使用组件标签-->
    <School></School>
    <Student></Student>
  </div>
</template>

<script>
  // 引入组件
  import School from "./School.vue";
  import Student from "./Student.vue";

  export default {
    name:"App",
    // 注册组件
    components:{
      School:School,
      Student:Student
    }
  }
</script>

<style>

</style>

main.js

import App from "./App.vue"

new Vue({
    el:"#root",

    template:"<App></App>",

    components:{App}
})

index.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>练习单文件组件的语法</title>
    </head>
    <body>
        <div id="root">

        </div>

        <!--Vue先就位-->
        <script type="text/javascript" src="../js/vue.js"></script>
        <!--main.js再就位-->
        <script type="text/javascript" src="./main.js"></script>
    </body>
</html>

 

标签:24,school,Vue,schoolName,vue,export,组件,import
From: https://www.cnblogs.com/REN-Murphy/p/17768643.html

相关文章

  • vue3中引入elementplus以及图标(vue3+vuecli)
    开发背景nodev18.17.0(node-v)npmv8.4.1(npm-v)@vue/cli5.0.8(vue-V)0.用命令行安装elementPlusnpminstallelement-plus--save1.elementplus按需手动导入ElementPlus组件很多,如果导入组件太多,为了更好的管理ElementPlus组件,可将组件作为独立的文件,将不同功能逻辑......
  • AtCoder Beginner Contest 324
    在高铁上加训!A-Same(abc324A)题目大意给定\(n\)个数,问是否都相等。解题思路判断是不是全部数属于第一个数即可。或者直接拿set去重。神奇的代码#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;intmain(void){ios::sync_with_stdio(f......
  • 记录--Vue中前端导出word文件
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助很多时候在工作中会碰到完全由前端导出word文件的需求,因此特地记录一下比较常用的几种方式。一、提供一个word模板该方法提供一个word模板文件,数据通过参数替换的方式传入word文件中,灵活性较差,适用于简单的文件导......
  • vue父组件如何获取子组件的ref
    可以在父组件的mounted钩子函数中获取子组件的ref,然后调用子组件的方法来设置当前节点,代码如下://父组件代码<template><SideBarref="sidebar"/></template><script>exportdefault{mounted(){this.$nextTick(()=>{//获取子组件tree的ref......
  • vue 手机规则校验
    一、背景点击查看代码phone:[{required:true,message:'请输入手机号',trigger:'blur'},{min:11,max:11,message:'手机号位数不对',trigger:'blur'},{pattern:/^(13[0-9]|14[579]|15[0-3,5-9]|16......
  • 开源组件 | 一款好用的小程序生成图片库
    一、项目概述想到小程序中有如此大量的生成图片需求,而Canvas生成方法又是如此难用和坑爹(有关小程序的坑,可看 https://github.com/Kujiale-Mobile/MP-Keng )。我们就想到可不可以做一款可以很方便生成图片,并且还能屏蔽掉直接使用Canvas的一些坑的库呢?对此我们发起了“画家......
  • 第二十一篇 - vue中实现页面刷新以及局部刷新的方法
    参考链接:https://blog.csdn.net/qq_41117240/article/details/127275478第一步:在需要局部刷新的标签添加 第二步:在data里面初始化isRefresh的值为true 第三步:在method里面添加刷新函数 第四步:在需要局部刷新的地方调用刷新函数this.updateRefresh()......
  • 2024年软考考试和报名时间表,请接收~
    软考(计算机技术与软件专业技术资格(水平)考试)是纳入全国专业技术人员职业资格证书制度统一规划,实行大纲、试题、标准、证书均统一的考试办法。其目的是科学、公正地对全国计算机与软件专业技术人员进行职业资格、专业技术资格认定和专业技术水平测试。下面给大家介绍一下2024年软考的......
  • Vue组件的基本概念与使用
    在Vue中,组件是构建用户界面的基本单元之一。它允许开发者将界面拆分为独立、可重用的模块,使代码更加结构化、易于维护。本文将从简单到复杂,全面介绍Vue组件的各种用法、优点、缺点以及注意事项。公众号:Code程序人生,个人网站:https://creatorblog.cn组件的基本概念组件是Vue的核心概......
  • 探索Vue生命周期钩子函数:从创生到销毁
    Vue这个引领前端开发潮流的框架,其优雅的响应式数据绑定和组件式开发方式,使得它备受瞩目。然而,Vue的魅力绝不仅限于此,它还赋予开发者一组神奇的生命周期钩子函数,能够在组件的各个成长阶段插入自定义代码。本文将带你进入Vue生命周期钩子函数的奇妙世界,一探它们的妙用、内部机制,同时......