一、创建组件

<script src="vue.js"></script> <!--引入vue.js文件-->

<div id="app">
<Vheader></Vheader> //使用组件
</div>
<script>
//创建组件
Vue.component('Vheader', {
//一定是函数
data:function () {
return {} //必须要返回,就算是空对象
},
template:'<div class="header"><p>我是头部</p></div>'
}); var vm = new Vue({
el:'#app', //目标区域
data:{ }
}) </script>

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

  • 组件的复用

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

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

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

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

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

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

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

二、项目中使用组件

(一)创建项目

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

1、安装node.js

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

#在命令行工具中输入

C:\Users\Administrator>node -v
v10.14.2 C:\Users\Administrator>npm -v
6.4.1

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

2、全局安装vue-cli

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

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

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

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

3、vue-cli的使用

在命令行中查看帮助信息

C:\Users\Administrator>vue --help
Usage: vue <command> [options] Options:
-V, --version output the version number
-h, --help output usage information Commands:
init generate a new project from a template
list list available official templates
build prototype a new project
create (for v3 warning only)
help [cmd] display help for [cmd]

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

C:\Users\Administrator>vue list

  Available official templates:

  ★  browserify - A full-featured Browserify + vueify setup with hot-reload, li
nting & unit testing.
★ browserify-simple - A simple Browserify + vueify setup for quick prototypi
ng.
★ pwa - PWA template for vue-cli based on the webpack template
★ simple - The simplest possible Vue setup in a single HTML file
★ webpack - A full-featured Webpack + vue-loader setup with hot reload, lint
ing, testing & css extraction.
★ webpack-simple - A simple Webpack + vue-loader setup for quick prototyping
.

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

  • 切换你需要建立项目的目录下
C:\Users\Administrator>e:

E:\>cd E:\vueProject
  • 初始化项目
E:\vueProject>vue init webpack-simple webpackProject
webpack-simple表示需要使用的模板,webpackProject表示项目的名称
E:\vueProject>vue init webpack-simple webpackProject

? Project name wptest  #不能含有大写的字母
? Project description A Vue.js project
? Author bright <bright@live.com>
? License MIT
? Use sass? No #需要选择No

初始化注意事项

  • 按照提示进行安装
  vue-cli · Generated "webpackProject".

  To get started:

    cd webpackProject
npm install
npm run dev

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

#在npm install 发现下载的太慢,时长卡住,这时考虑使用淘宝镜像

#安装cnpm
E:\vueProject\webpackProject>npm install -g cnpm --registry=https://registry.npm
.taobao.org #使用
E:\vueProject\webpackProject>cnpm install

cnpm install

(二)创建组件

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

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

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

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

在Vheader.vue组件中:

<template>
//注意标签不能并列,只能是包裹的,也就是说其余的标签必须放在下面div中,不能再有其它与其并列的标签
<div class="header">
<p>我是头部</p>
</div>
</template> <script>
export default {
name: "Vheader",
data:function () {
return {}
}, methods:{
//在当前组件内调用
}, computed:{
//在在当前组件内调用
} }
</script> <style scoped>
/*设置scoped,只对当前组件样式起作用*/ </style>

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

  • 引入组件
  • 挂载组件
  • 使用组件
<!--一个组件有三部分组成-->

<template>
<!--页面结构-->
<div id="app">
<!--使用组件-->
<Vheader></Vheader>
<Vcontent></Vcontent>
<Vfooter></Vfooter> </div>
</template> <script>
// 导入组件
import Vheader from './components/Vheader.vue'
import Vcontent from './components/Vcontent.vue'
import Vfooter from './components/Vfooter.vue'
// 页面业务逻辑
export default {
name: 'app',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
}, // 挂载组件
components:{
Vheader:Vheader,
Vcontent:Vcontent,
Vfooter:Vfooter
}
}
</script> <style>
/*页面样式*/ </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. django 内置server 外网不能访问, 报连接超时

    按照官网教程,以 python manage.py runserver 其访问url为 http://127.0.0.1:8000,意味着只能本机访问,而我的django app 部署在 阿里云上面 ...

  2. ubuntu 下 使用 Git 维护 linux kernel版本

    学习linux内核一段时间,意识到内核的版本需要严格控制.利用Git工具可以很轻松的完成不同开发人员不同模块之间的代码融合与版本控制 . 1. 首先,安装Git .可以参考廖雪峰的博客  https: ...

  3. python re.I compile search

    import restring = "The quick brown fox jumps over the lazy dog."a_list = string.split()pat ...

  4. springBoot框架在idea中创建流程 同时存在一个项目中

    1.新建普通maven工程 2.在父级pom中按需修改 3.删除父级src目录 4.创建公共模块common,里面只有service接口和实体类 5.构建微服务模块,provider 6.引用Zook ...

  5. docker提示没有开启转发解决方法

    vim  /usr/lib/sysctl.d/00-system.conf [root@t1 ~]# vim /usr/lib/sysctl.d/00-system.conf# Kernel sysc ...

  6. JS数组 Array

    1.创建数组 var array=new Array(); 2.添加数组 array.push("111"); array.push("111"); array ...

  7. Spring boot自定义拦截器和拦截器重定向配置简单介绍

    大家好: 本文简单介绍一下用于权限控制的Spring boot拦截器配置,拦截器重定向问题. 开发工具:jdk1.8   idea2017(付费版,网上找的破解教程) 1,首先使用idea创建一个Sp ...

  8. RichView

    TRichView中文文档 TRichView 是Delphi/C++Builder  控件,主要用于显示.编辑和打印超文本文档. 新版本解决多个兼容性问题,更新了字符串标签.剪贴板.RTF和DB组件 ...

  9. js中浏览器对象BOM

    参考  :  https://www.cnblogs.com/Peng2014/p/4725524.html 1. window对象   https://www.runoob.com/jsref/ob ...

  10. centos 安装 git

    先安装依赖包yum install -y curl curl-devel zlib-devel openssl-devel perl perl-devel cpio expat-devel gette ...