Vue速成day04--组件详解

组件

1、概念:组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。
2、定义方式

  // 全局定义 所有vue实例都可以调用该组件
  Vue.component('one',{
    template:`<div>
      <h1>我是one的题目</h1>
      <p>我是one的内容</p>
    </div>`
  })

  new Vue({
    el:'#app',
    // 局部定义 只有当前vue实例才可以调用该组件
    components:{
      hello:{
        template:'<h3>哈哈哈,我是一个局部组件</h3>'
      }
    }
  })

3、组件命名

  1、不能以已经存在的标签命名。eg:div span a b em
  2、也不能以已经存在的标签大写命名。eg:DIV SPAN A B EM
  3、如果组件名称中有大写字母,调用的时候要改成-小写。   烤串写法
  4、当首字母就是大写的时候,那么就直接改成小写
  5、推荐组件名称中至少包含一个大写字母。eg:webNav  webBanner

template

    1、如果定义了template选项,那么就不会加#app里面的内容,而是将template中的内容直接渲染到页面中
    2、在template中最外层只能有一个根标签
    3、我们可以借助template标签来定义,template标签仅仅是一个模板占位符,并不会展示在页面中
    4、在写template的时候,不要考虑其他的,就考虑正常在页面中怎么写,那么在template中就怎么写

data

    data是一个返回对象的函数,这样设计的目的是因为,组件是为了重复调用,但数据又要互相隔离。如果定义成一个对象的话,就会一变全变,所以得定义一个函数,封闭空间。实现了展示的效果一样,但数据又互相不影响。

脚手架安装

// 全局安装webpack
npm i webpack -g
// 全局安装vue脚手架
npm i vue-cli -g
// 创建项目
vue init webpack demo
// 进入项目
cd demo
// 启动项目
npm run dev

脚手架文件夹

-demo                     项目文件夹
 -build                   打包配置
 -config                  启动项目的配置项
 -dist                    打包以后的文件
 -node_modules            依赖包
 _static                  静态资源 img rem.js reset.css
  .babelrc                es6->es5
  .editorconfig           编辑器配置
  .gigignore              不用上传到github的代码
  .postcssrc.js           处理css兼容
  index.html              页面
  package.json            启动命令   打包命令     依赖包
  README.md               说明
 _src       

启动命令npm run dev
打包命令npm run build

脚手架中组件定义

//全局组件(在main.js中)
import vNews from "路径"
Vue.component("组件名",vNews)

//局部组件(在各自的组件中)
import vChild from "路径"
export default{
    components:{
        vChild
    }
}

面试题

1、组件中的data为什么必须是函数?
2、vue-cli中怎样定义和使用组件?
3、列举vue-cli项目目录中文件夹和文件的用法?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容