老规矩,先回顾一下上回的重点:

1.对于input框,若为单选框,如果没有对其设置value,那么其checked的值将在true Or false之间切换;如果设置了value,那么将会切换value值

2.而多选框和单选框有相同的原理,只是多选框是以数组的方式返回值

3.option如果没有设置value,那么渲染的值就为option中的内容

4.各类修饰器,详情见上回分解

回顾完上期的重点,我们来看一下今天的内容,之前几期我们对vue的基础进行了详细的学习;现在我们来看一看组件的知识:

组件其实就是把交互功能模块独立出来,方便重复使用,形象一点说就好比是HTML中的公共样式;js中的方法。

进入正题,那么我们该如何写一个组件呢,上代码:

Vue.component ( ‘ my-component ’ ,{

  template: ' <div> c总,不要翻水水a </div> '

})

  new Vue({

    el:' #nubiya ',

})

// 这就是一个最基本的组件;my-component是组件名;template后面跟的是组件需要渲染的内容

<div id=" nubiya ">

  <template></template>

</div>

//  =>

<div id=" nubiya ">

  <div>c总,不要翻水水a</div>

</div>

需要注意的是:

vue组件要写在前面,vue实例化要写在后面,不然就会报错;同时,组件只在vue作用域内有效,也就是在id为 nubiya 的结构下。

上面我们所认识的是 全局组件,也就是说,不管有多少个vm,全局组件都会在这些vm中生效;比如说这样:

<div id=" nokia ">

  <o-template></o-template>

</div>

<div id=" nokia2 ">

  <o-template></o-template>

</div>

Vue.component( 'o-complate' ,{

  template:' <div>c总,翻个香蕉船啊</div> '

} )

vm1=new Vue({

  el:' nokia '

})

vm2=new Vue({

  el:' nokia2 '

})

//那么将会输出两条一样的  " c总,翻个香蕉船啊 "

现在我们来讲一讲局部组件:

var huawei ={

  template: ' <div>c总正在翻水水</div> '

}

vm = new Vue({

  el:' oppo ',

  components:{

    ' o-complate ':huawei

}

})

//可以看到这个地方,我们把o-complate放在了vm对象里面,那么o-complate只能在vm作用域内,也就是id为oppo的结构内;

//同时需要注意的是: 这个地方huawei其实就是一个参数对象。

这里需要插播一个小细节:

dom在组件中放的位置其实是有规定的;就像ul和li之间不能加其他标签一样,如果在组件中这样写:

<table>

  <xiaomi></xiaomi>

</table>

//这样是会报错的;

不过vue也提供了一种方法:

<table>

  <tr is=' xiaomi '></tr>

</table>

//is属性可以保留html原有标签和原本的属性。

现在来看一下,我们早有接触的data属性:

Vue.component(' meizu ',{

  template: ' <div> abc </div> '

  data:{

    message:' hello world '

}

})

//这种写法,显然是错误的~~~

那么正确的应该怎样呢?  如下:

Vue.component( ' meizu ',{

  template:' <div>abc</div> '

  data:function(){

    return {message:' hello '}

}

} )

//这里需要注意的是组件中的data必须要用回调函数

var data = { counter: 0 }

Vue.component('simple-counter', {
template: '<button v-on:click="counter += 1">{{ counter }}</button>',
data: function () {
return data
}
})
new Vue({
el: '#example-2'
})
<div id="example-2">
<simple-counter></simple-counter>
<simple-counter></simple-counter>
<simple-counter></simple-counter>
</div>

//注意:这个地方 3个button的点击事件是共享的,但是在某些时候,我们需要3个按钮独立,所以我们可以这样写:

data:function(){

  return:{

    counter:0

}

}

组件里的el属性也要用闭包+return的写法。它定义组件的有效作用域。

Vue.component('simple-counter', {
el:function(){
return '#example'
},
template: '<button v-on:click="counter += 1">{{ counter }}</button>',
data: function () {
return data
}
})

OKOK~~~   JINTIANJIUDAOZHELILE~~~    goodnight~~~~~~~~

Vue学习之路---No.7(分享心得,欢迎批评指正)的更多相关文章

  1. vue学习之路 - 4.基本操作(下)

    vue学习之路 - 4.基本操作(下) 简述:本章节主要介绍 vue 的一些其他常用指令. Vue 指令 这里将 vue 的指令分为系统内部指令(vue 自带指令)和用户自定义指令两种. 系统内部指令 ...

  2. Vue学习之路之登录注册实例代码

    Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...

  3. Vue学习之路---No.4(分享心得,欢迎批评指正)

    这里说声抱歉,周末因为有其他事,没有更新博客,那么我们今天继续上周5的说. 老规矩,先回顾一下上一次的重点: 1.利用V-if和v-else来提到show()和hide(),同时要记住,v-else一 ...

  4. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  5. Vue学习之路第一篇(学习准备)

    1.开发工具的选择 这个和个人的开发习惯有关,并不做强求,厉害的话用记事本也可以.但是我还是建议用人气比较高的编辑工具,毕竟功能比较全面,开发起来效率比较高. 我之前写前端一直用的是sublimete ...

  6. Vue学习之路---No.2(分享心得,欢迎批评指正)

    昨天我们大致了解了有关Vue的基础知识和语法:今天我们继续在大V这条路上前进. 首先,我们回忆一下昨天提到的相关知识点: 1.了解Vue的核心理念------"数据驱动视图" 2. ...

  7. Vue学习之路---No.6(分享心得,欢迎批评指正)

    我们还是先回顾一下上一次的重点: 1.事件绑定,我们可以对分别用方法和js表达式对事件进行处理 2.当方法名带括号的时候,在方法中一定要传参:而不带括号的时候,vm会自动配置默认event 3.各类事 ...

  8. Vue学习之路---No.3(分享心得,欢迎批评指正)

    同样的,我们先来回顾一下昨天学习的内容: 1.利用v-once来组织双向绑定 2.filter{}过滤器的使用(详情请看上一章) 3.computed(计算属性),利用computed属性实现filt ...

  9. Vue学习之路---No.1(分享心得,欢迎批评指正)

    首先为了打消大家对Vue.js存在的顾虑,先通过大家所熟知的JQ作为对比. 都知道JQ的语法相对简单.清楚.使用方便.功能齐全: 那么Vue.js呢,同样的,Vue.js与JQ在很多地方都是相同之处, ...

随机推荐

  1. Android 隐藏软键盘

    隐藏软键盘 public void hideSoftInputView() { InputMethodManager manager = ((InputMethodManager) this.getS ...

  2. ubuntu 压缩软件

    7-zip 安装: sudo apt-get install p7zip-full 使用方法: 7z x file file是你要解压的文件名 更多使用方法: man 7z rar sudo apt- ...

  3. 《JAVASCRIPT高级程序设计》事件处理程序和事件类型

    一.事件流 谈到事件,首要要理解事件流的概念:事件流是指从页面接受事件的顺序:“DOM2级事件”规定事件流包括三个阶段:事件捕获阶段.处于目标阶段和事件冒泡阶段.目前大部分的浏览器的事件流是事件冒泡, ...

  4. 日月如梭,玩转JavaScript日期

    一.Date对象 下面出现的源码都可以codepen在线查看. 1)时间戳毫秒计算 Date对象是基于"1970-01-01 08:00:00"到指定日期的毫秒数,不是" ...

  5. oracle 12c安装详细教程

    数据库下载:www.orcale.com访问官网自行下载. 一,将下载好的两个压缩包在同一目录中进行解压(文件目录尽量用英文) 解压后如下使用管理员身份运行setup安装程序 注意:对于学习阶段,这一 ...

  6. ArcGIS快速制图插件介绍

    ArcGIS快速制图插件介绍 By 李远祥 作品背景 <快速制图插件增强版>在原有的<快速制图插件>基础上,加入植被乱序填充.生成立体楼快.等高线增强显示.一键导出地图和数据. ...

  7. 分布式架构--Dubbo项目实战学习文档

    安装Dubbo注册中心(Zookeeper-3.4.6) 安装Dubbo管理控制台 Tomcat中部署web应用 ---- Dubbo服务消费者Web应用war包的部署 Dubbo监控中心的介绍与简易 ...

  8. java注解(基础)

    一.认识注解 1.注解的定义: java提供了一种原程序中的元素关联任何信息和元数据的途径和方法. 2.学习注解的目的: (1)能够读懂别人写的代码,特别是框架相关的代码(框架中使用注解是非常方便的) ...

  9. mac 终端简单指令

    pwd 当前工作目录 cd(不加参数) 进root cd(folder) 进入文件夹 cd .. 上级目录 cd ~ 返回root cd - 返回上一个访问的目录 rm 文件名 删除 cat 文件名( ...

  10. 决策树和基于决策树的集成方法(DT,RF,GBDT,XGB)复习总结

    摘要: 1.算法概述 2.算法推导 3.算法特性及优缺点 4.注意事项 5.实现和具体例子 内容: 1.算法概述 1.1 决策树(DT)是一种基本的分类和回归方法.在分类问题中它可以认为是if-the ...