一、创建组件

  1. <script src="vue.js"></script> <!--引入vue.js文件-->
  2.  
  3. <div id="app">
  4. <Vheader></Vheader> //使用组件
  5. </div>
  6. <script>
  7. //创建组件
  8. Vue.component('Vheader', {
  9. //一定是函数
  10. data:function () {
  11. return {} //必须要返回,就算是空对象
  12. },
  13. template:'<div class="header"><p>我是头部</p></div>'
  14. });
  15.  
  16. var vm = new Vue({
  17. el:'#app', //目标区域
  18. data:{
  19.  
  20. }
  21. })
  22.  
  23. </script>

  组件是可复用的 Vue 实例,且带有一个名字:在这个例子中是 <Vheader>。我们可以在一个通过 new Vue 创建的 Vue 根实例中,把这个组件作为自定义元素来使用,如上面的代码所示。

  • 组件的复用

组件可以进行任意次数的复用

  1. <div id="app">
  2. <Vheader></Vheader>
  3. <Vheader></Vheader>
  4. <Vheader></Vheader>
  5. </div>
  • data必须是一个函数,并且必须要有返回值

一个组件的 data 选项必须是一个函数,因此每个实例可以维护一份被返回对象的独立的拷贝:

  1. data:function () {
  2. return {} //必须要返回,就算是空对象
  3. },
  • 组件的注册

为了能在模板中使用,这些组件必须先注册以便 Vue 能够识别,这样才能在根下进行使用, Vue.component 就是全局注册的,

  1. Vue.component('Vheader', {
  2. // ... options ...
  3. });

全局注册的组件可以用在其被注册之后的任何 (通过 new Vue) 新创建的 Vue 根实例,也包括其组件树中的所有子组件的模板中。

二、项目中使用组件

(一)创建项目

通过vue-cli创建项目,然后在其中创建项目并且使用组件。

1、安装node.js

自行去官网https://nodejs.org/en/下载并且安装,安装完毕后:

  1. #在命令行工具中输入
  2.  
  3. C:\Users\Administrator>node -v
  4. v10.14.2
  5.  
  6. C:\Users\Administrator>npm -v
  7. 6.4.1

如果出现对应的版本号,说明安装成功。

2、全局安装vue-cli

  1. npm install --global vue-cli / cnpm install --global vue-cli #(npm相当于python中的pip工具,此命令只需要执行一次)

安装完毕后,命令行输入:

  1. C:\Users\Administrator>vue -V #这里的vue只是一个工具,用于快速创建项目
  2. 2.9.6

此时已经完成vue-cli工具的安装,vue-cli工具是一个用于快速创建项目的工具

3、vue-cli的使用

在命令行中查看帮助信息

  1. C:\Users\Administrator>vue --help
  2. Usage: vue <command> [options]
  3.  
  4. Options:
  5. -V, --version output the version number
  6. -h, --help output usage information
  7.  
  8. Commands:
  9. init generate a new project from a template
  10. list list available official templates
  11. build prototype a new project
  12. create (for v3 warning only)
  13. help [cmd] display help for [cmd]

此时可以根据提示查看可以使用的模板

  1. C:\Users\Administrator>vue list
  2.  
  3. Available official templates:
  4.  
  5. browserify - A full-featured Browserify + vueify setup with hot-reload, li
  6. nting & unit testing.
  7. browserify-simple - A simple Browserify + vueify setup for quick prototypi
  8. ng.
  9. pwa - PWA template for vue-cli based on the webpack template
  10. simple - The simplest possible Vue setup in a single HTML file
  11. webpack - A full-featured Webpack + vue-loader setup with hot reload, lint
  12. ing, testing & css extraction.
  13. webpack-simple - A simple Webpack + vue-loader setup for quick prototyping
  14. .

之前使用的一直是simple 简单的模板,此时可以使用webpack-simple模板创建项目:

  • 切换你需要建立项目的目录下
  1. C:\Users\Administrator>e:
  2.  
  3. E:\>cd E:\vueProject
  • 初始化项目
  1. E:\vueProject>vue init webpack-simple webpackProject
  1. webpack-simple表示需要使用的模板,webpackProject表示项目的名称
  1. E:\vueProject>vue init webpack-simple webpackProject
  2.  
  3. ? Project name wptest #不能含有大写的字母
  4. ? Project description A Vue.js project
  5. ? Author bright <bright@live.com>
  6. ? License MIT
  7. ? Use sass? No #需要选择No

初始化注意事项

  • 按照提示进行安装
  1. vue-cli · Generated "webpackProject".
  2.  
  3. To get started:
  4.  
  5. cd webpackProject
  6. npm install
  7. npm run dev

此时就完成了一个项目的创建。

  1. #在npm install 发现下载的太慢,时长卡住,这时考虑使用淘宝镜像
  2.  
  3. #安装cnpm
  4. E:\vueProject\webpackProject>npm install -g cnpm --registry=https://registry.npm
  5. .taobao.org
  6.  
  7. #使用
  8. E:\vueProject\webpackProject>cnpm install

cnpm install

(二)创建组件

在生成的项目中,主要关心的是src文件夹中的内容:

这个项目的入口文件是main.js文件,这里主要是加载App.vue的内容。

  1. import Vue from 'vue' //导入模块
  2. import App from './App.vue' // 一个.vue就是一个组件
  3.  
  4. new Vue({
  5. el: '#app',
  6. render: h => h(App) //加载组件
  7. });

在App.vue组件中又引入了新的组件,这里先看看引入的三个组件:

在Vheader.vue组件中:

  1. <template>
    //注意标签不能并列,只能是包裹的,也就是说其余的标签必须放在下面div中,不能再有其它与其并列的标签
  2. <div class="header">
  3. <p>我是头部</p>
  4. </div>
  5. </template>
  6.  
  7. <script>
  8. export default {
  9. name: "Vheader",
  10. data:function () {
  11. return {}
  12. },
  13.  
  14. methods:{
  15. //在当前组件内调用
  16. },
  17.  
  18. computed:{
  19. //在在当前组件内调用
  20. }
  21.  
  22. }
  23. </script>
  24.  
  25. <style scoped>
  26. /*设置scoped,只对当前组件样式起作用*/
  27.  
  28. </style>

其它组件的创建与其类似,而将其引入到App.vue中分为三步:

  • 引入组件
  • 挂载组件
  • 使用组件
  1. <!--一个组件有三部分组成-->
  2.  
  3. <template>
  4. <!--页面结构-->
  5. <div id="app">
  6. <!--使用组件-->
  7. <Vheader></Vheader>
  8. <Vcontent></Vcontent>
  9. <Vfooter></Vfooter>
  10.  
  11. </div>
  12. </template>
  13.  
  14. <script>
  15. // 导入组件
  16. import Vheader from './components/Vheader.vue'
  17. import Vcontent from './components/Vcontent.vue'
  18. import Vfooter from './components/Vfooter.vue'
  19. // 页面业务逻辑
  20. export default {
  21. name: 'app',
  22. data () {
  23. return {
  24. msg: 'Welcome to Your Vue.js App'
  25. }
  26. },
  27.  
  28. // 挂载组件
  29. components:{
  30. Vheader:Vheader,
  31. Vcontent:Vcontent,
  32. Vfooter:Vfooter
  33. }
  34. }
  35. </script>
  36.  
  37. <style>
  38. /*页面样式*/
  39.  
  40. </style>

这样就完成组件的创建以及使用了。

vue组件基础之创建与使用的更多相关文章

  1. vue组件基础之父子传值

    可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组 ...

  2. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  3. Vue组件基础

    <!DOCTYPE html><html>    <head>        <meta charset="utf-8">      ...

  4. Vue组件基础知识总结

    组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树. 那么什么是组件呢?组件可以扩展HTML元素,封装 ...

  5. Vue 组件基础完整示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Vue.js 学习笔记之四:Vue 组件基础

    到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ...

  7. Vue 组件基础完整示例2

    简介此页面可以直接复制运行,包含以下应用: Vue slot插槽使用Vue v-model使用Vue props使用父子组件数据传递element-ui使用HTML方式注册子组件,可以将子组件数据写在 ...

  8. vue—组件基础了解

    什么是组件? 组件是vue中的一个可复用实例,所以new Vue()是vue中最大的那个组件,根组件,有名字,使用的时候以单标签或双标签使用 vm = newVue() 是最大的组件,具有很多实用性的 ...

  9. Vue组件的基础用法(火柴)

    前面的话 组件(component)是Vue最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码,根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己的需要,使用 ...

随机推荐

  1. ReentrantReadWriteLock的相关使用

    ReentrantLock具有完全互斥排他的效果,同一时间只有一个线程执行ReentrantLock.lock()方法后面的任务,这样虽然能够保证线程安全性,但是效率是比较低的 ReentrantRe ...

  2. 深入理解java虚拟机JVM(下)

    深入理解java虚拟机JVM(下) 链接:https://pan.baidu.com/s/1c6pZjLeMQqc9t-OXvUM66w 提取码:uwak 复制这段内容后打开百度网盘手机App,操作更 ...

  3. 【读书笔记】【数据库】SQL必知必会

    第1课 了解SQL 简单介绍了sql,和dbms,无重点. 第2课 检索数据 重点:select语句,distinct,limit,注释 1. select 语句如果没有明确排序查询结果,那么返回的数 ...

  4. Add cast to是什么意思

    eclipse中是强制类型转换的意思.

  5. 生产者消费者模式-->线程

    #_author:来童星#date:2019/12/17#生产者消费者模式-->线程from queue import Queueimport random,time,threading#生产者 ...

  6. git——commit之后一直出现一个>

    在网上搜了半天,也没见过有类似的情况,忘记具体是怎么解决的了,我记得是重新add了一遍,再commit就OK了 更新: 感谢@月下初拥的评论,找到了原因,可能是由于commit的注释结构有误造成的,比 ...

  7. CentOS下MYSQL数据库的安装

    关于在Centos系统下安装MYSQL数据库,网络上资料有很多,在此主要感谢该文章的博主:http://www.cnblogs.com/zhoulf/archive/2013/01/25/zhoulf ...

  8. A*启发式搜索基础

    A*启发式搜索基础 传统的搜索方式是盲目搜索,即到每一步的时候并没有对每种情况进行有效的区分,这样的结果是浪费了大量的时间,对很多没有必要的数据进行了搜索. 而A*算法则在搜索的过程中会选取认为“最优 ...

  9. DELPHI中枚举类型数据的介绍和使用方法

    在看delphi程序的时候看到aa=(a,b,c,d);这样的东西,还以为是数组,同事说是函数,呵呵,当然这两个都不屑一击,原来这样式子是在声明并付值一个枚举类型的数据.下边写下来DELPHI中枚举类 ...

  10. 吉首大学校赛 K 白山茶与红玫瑰 (线段树区间操作)

    链接:https://ac.nowcoder.com/acm/contest/925/K来源:牛客网 题目描述 公元2019年6月22日,白山茶王国与红玫瑰王国展开大战,在世外仙境——天空花园处,双方 ...