vue脚手架 笔记01

01 页面组件

        所谓的组件就是把页面每一块内容单独分离出去封装起来

        组件包括自己本身的html css 和 js

        可以被反复引入使用 (复用)

        方便后期维护(方便快速的增加或者删除指定页面的指定模块)

        组件化开发:

                组件是独立的可复用的代码组织单元 组件系统是vue核心特性之一

        组件分类:页面组件 业务组件 通用组件

        页面组件:

                一个vue文件充当一个页面比如:现在的App.vue

        业务组件:

                基本上页面渲染部分很少 主要针对数据的业务逻辑处理的vue文件

        通用组件:

                一个小组件 可以在其他页面上到处多次渲染

        Index页面组件的渲染:

                1 在src里面创建Index.vue

                2 vue文件中定义三大模块 template script style

                3 template里面必须有根节点标签(一般都是div div加id id的名字一般就叫做组件的名字)

                4 script必须定义export default{}表示数据和事件对外暴露使用

                5 在mian.js通过import 引入这个组件

                        import Index from './Index.vue'

                6 在new Vue的options对象里面 通过render函数渲染这个页面组件

                         render: h => h(Index)

                 组件的data必须是一个函数 这个函数必须return一个大括号

                在大括号里面定义组件要用的data数据

                面试题:为什么组件的data必须是一个函数

                原因:将来多个组件打包后 会合并到一起 一旦组件之间有data数据重名,

                就可能出现覆盖的情况  导致打包之后数据混乱所以组件的data是一个函数,

                就形成了一个闭包  数据就变成了局部变量 就算都打包合并到一起,

                不同的组件就是不同的局部变量 数据重名也互相不影响。

02 子组件

        一个组件在另一个组件的template里面渲染使用那么当前的这个组件就是子组件,外部的组件就是父组件

        vue文件存放位置的潜规则:

        页面组件存放在src下views文件夹

        通用组件(反复复用的一小部分效果的组件) 存放在src下componenets文件夹里面

        (潜规则一般组件的首字母大写 不强求 一般在main里面引入的组件对象都是大写)

步骤:

        1.在components文件夹里面创建文件名.vue文件

        2.在子组件中定好当前组件的模板 样式 和数据

        3.在想要引入该组件的vue文件中的script标签里面通过import引入这个子组件

                import 对象名 from './components/组件名'

        4.在当前父组件的compoents:{}里面注册子组件标签名

                components:{

                    Child

                }

        5.在当前父组件的template里面直接通过子组件标签名使用

        总结:

        组件的简单理解:

            把一堆标签封装起来 变成一个自定义标签 可以反复使用

            这个标签里面自带页面样式和动态效果

03 动态组件

        动态组件的使用:

                1 在template模板里面引用component组件(vue提供的自定义标签名称就叫做组件)

                2 component组件有一个is属性 is属性等于哪一个子组件标签名  就会渲染哪一个子组件

                3 使用v-bind:is 绑定is属性 关联一个变量 变量等于哪个子组件就显示哪个子组件

      .native 事件穿透 把事件穿透到#child的标签上面 相当于父组件模板中给子组件的标签绑定事件

      最终绑定的是id为child的标签上面

      html原生的标签绑定事件不需要穿透

      自定义组件或者第三方的组件或者官方提供的其他的组件需要穿透

04 slot插槽

        slot插槽的作用:

                子组件的标签内部默认不能存放任何html代码

                因为子组件最终渲染成功以后 会把子组件的标签的内容替换并渲染成子组件

                template里面的内容

        插槽分类:

        匿名插槽:

                在子组件的模板中 定义slot标签即可

                将来子组件标签内部所写的所以内容 都会被保存到这个slot标签所在的位置

        具名插槽:

                子组件标签内部的slot组件 需要添加一个name属性 值为自定义名字

                外部使用该子组件的时候 想要保存的内容的标签上面定义slot属性,

                值为子组件内部slot组件的name值

相关推荐

  1. vue脚手架 笔记01

    2024-06-09 10:58:02       9 阅读
  2. vue脚手架 笔记03

    2024-06-09 10:58:02       5 阅读
  3. vue脚手架 笔记07

    2024-06-09 10:58:02       8 阅读
  4. Vue3脚手架笔记

    2024-06-09 10:58:02       34 阅读
  5. Vue 新版 脚手架 初始化 笔记

    2024-06-09 10:58:02       28 阅读
  6. Vue3 & Vite 整合组件脚手架笔记

    2024-06-09 10:58:02       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 10:58:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 10:58:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 10:58:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 10:58:02       20 阅读

热门阅读

  1. 金融数据分析----code详解版

    2024-06-09 10:58:02       7 阅读
  2. 深入理解交叉熵损失CrossEntropyLoss - 损失函数

    2024-06-09 10:58:02       10 阅读
  3. 深入浅出服务发现:构建动态微服务架构的基石

    2024-06-09 10:58:02       7 阅读
  4. 事件驱动架构:新时代的软件设计范式

    2024-06-09 10:58:02       6 阅读
  5. C/C++开发,,pthreads-win32官网,pthreads-win32

    2024-06-09 10:58:02       7 阅读
  6. SpringBoot集成ClickHouse,含集成kerberos认证

    2024-06-09 10:58:02       10 阅读
  7. Angular知识概览

    2024-06-09 10:58:02       9 阅读
  8. Mac电脑arm64芯片Cocoapods 的 ffi 兼容问题

    2024-06-09 10:58:02       7 阅读
  9. 0105__学习一个 Linux 命令:objcopy 命令

    2024-06-09 10:58:02       10 阅读