• Vue3.0 项目结构及组件


    项目结构

    main.js文件

    1. // vue中main.js的作用
    2. // main.js是项目的入口文件,项目中所有的页面都会加载main.js,所以main.js,主要有三个作用:
    3. // 1.实例化Vue。
    4. // 2.放置项目中经常会用到的插件和CSS样式。例如: 网络请求插件:axios和vue-resource、图片懒加载插件:vue-lazyload
    5. // 3.存储全局变量。
    6. //vue中App.vue文件的作用
    7. //App.vue是vue页面资源的首加载项,是主组件,页面入口文件,所有页面都是在App.vue下进行切换的;(主组件app.vue调用其他组件,构建页面)
    8. //1、一般就是指整个vue项目的根组件,用来展示组件中内容;
    9. //2、App.vue是针对整个项目称作根组件,template下的子元素是针对当前的vue实例称作根组件。
    10. //3、app.vue可以当做是网站首页,也可以写所有页面中共同需要的动画或者样式,不在他上面写代码也可以。只要你在router文件夹中的index.js填写好路由就行。
    11. //vue中components文件夹的作用
    12. //components文件夹 是用来存放组件的
    13. //从node_modules文件夹中导入vue组件
    14. import { createApp } from 'vue'
    15. //从根目录下导入App.vue模板,假如我们不需要app.vue 自己在根目录下建立了一个MyApp.vue的文件,我们想以它为模板将它导入进来就可以改成 import MyApp from './MyApp.vue' createApp(MyApp).mount('#app') 即可,变量名称随我们自己取 也可以写成 import aaa from './MyApp.vue' createApp(aaa).mount('#app')
    16. import App from './App.vue'
    17. //根据App模板创建vue对象。 mount('#app') 表示将Vue实例挂载到index.html页面 id 为 app 的元素上
    18. createApp(App).mount('#app')

    模块的定义及使用

    项目结构:

    App.vue根组件下面有一个Navbar组件和一个Sidebar组件

    Sidebar组件下面有一个SidebarButton.vue组件

    创建Navbar.vue组件

    1. <template>
    2. <div>
    3. 我的Navbar
    4. div>
    5. template>
    6. <style scoped> div {
    7. background: red;
    8. }
    9. style>

    创建SidebarButton.vue的组件

    SidebarButton.vue组件是Sidebar.vue组件的子组件

    1. <template>
    2. <div>
    3. <button v-on:click="GetData()">点击我button>
    4. div>
    5. template>
    6. <script>
    7. export default{
    8. methods:{
    9. GetData(){
    10. fetch("http://localhost:8080").then(res=>res.json()).then(r=>console.log(r))
    11. }
    12. }
    13. }
    14. script>

    创建Sidebar.vue的组件

    导入SidebarButton.vue子组件,并组件子组件

    1. <template>
    2. <div>
    3. 我的Sidebar
    4. <SidebarButton>SidebarButton>
    5. div>
    6. template>
    7. <script>
    8. import SidebarButton from './SidebarButton.vue' //注意此处的路径不需要加components,因为当前文件Sidebar.vue与需要导入的文件SidebarButton.vue在同一路径下
    9. export default{
    10. components:{
    11. SidebarButton //注册SidebarButton组件:也可以写成SidebarButton:SidebarButton
    12. }
    13. }
    14. script>

    App.vue根组件

    导入Navbar.vue子组件和Sidebar.vue子组件,并组件子组件

    1. <template>
    2. <div>
    3. <Navbar>Navbar>
    4. <Sidebar>Sidebar>
    5. div>
    6. template>
    7. <script>
    8. import Navbar from './components/Navbar.vue' //导入Navbar.vue组件模板
    9. import Sidebar from './components/Sidebar.vue' //导入Sidebar.vue组件模板
    10. export default {
    11. //局部注册两个组件
    12. components: {
    13. Navbar, //Navbar:Navbar可以简写成Navbar
    14. Sidebar //Sidebar:Sidebar可以简写成Sidebar
    15. }
    16. }
    17. script>
    18. <style>
    19. div{
    20. background: yellow; /*它会影响全局div样式的,如果想在局部组件中不被此样式影响,请在局部样式中用scoped标识优先级,避免被影响如: <style scoped> div {background: red;}style> */
    21. }
    22. style>

    效果 

  • 相关阅读:
    centos7搭建EFK日志收集系统
    机器学习的模型X预测Y的理解
    【Linux数据库注意问题】java.sql.SQLSyntaxErrorException: Table ‘e.USER‘ doesn‘t exist
    视频编辑软件Corel VideoStudio 会声会影2024中文剪辑使用教程
    python技术面试题(其三)
    一文带你快速了解Python史上最快Web框架
    将TiDB换成MySQL之后,我踩了一个坑
    源码编译部署LAMP
    如何在 pyqt 中自定义工具提示 ToolTip
    浸没式冷却-散热技术新趋势,一起学Flotherm电子元器件散热仿真
  • 原文地址:https://blog.csdn.net/Fanbin168/article/details/133864279