vue.js指令和组件详细介绍及实例


Posted in Javascript onApril 06, 2017

大家好,本文给各位做一下vue.js一个最基本的概念介绍。

vue.js 指令

<div id="app">
  <div v-text="message"></div>
</div>
var app = new Vue({
 el: '#app',
 data: {
  message: 'Hello Vue!'
 }
})

这个例子我们会得到,v-text所在的div元素的内部插入了'Hello Vue!'这段字符串,那么我们为什么会产生这样一个结果呢,我们来分析一下:

vue.js指令和组件详细介绍及实例

这一步的意思是,实例化的这个Vue接管了#app元素,这里面的所有内容归我管,也就是说可以接受vue的功能指令。

vue.js指令和组件详细介绍及实例

第二步是在#app里, v-text指令被识别出来,它接受的参数是'message',vue获取到这个参数,并在自己实例化的data里查找叫message的属性,找到message的内容原来是'hello vue', 于是把'hello vue' 渲染到页面。

类似的指令,还有v-if,条件判断,v-for,列表渲染,v-on进行元素的事件绑定。等等。vue.js与页面也就是template进行交互,主要是通过这些内置指令来完成的。

vue.js 组件

开发前端页面,模块化有很多好处,比如公用的sidebar,比如公用的日期选择器。

模块化还有一个好处,就是简化开发逻辑,让项目具有扩展性。

vue.js的模块化主要体现在组件上,以组件为单位进行模块化。

我们可以在实例化vue对象之前,通过Vue.component方法来注册全局的组件,比如:

全局组件

// 告诉Vue,我需要一个组件叫做todo-item,它的配置如下,就是包含props和template那个对象
Vue.component('todo-item', {
 props: ['todo'],
 template: '<li>{{ todo.text }}</li>'
}) 
// 实例化一个vue对象,挂载在#app-7这个元素下,并且设定它的属性,groceryList,是一个数组
var app7 = new Vue({
 el: '#app-7',
 data: {
  groceryList: [
   { text: 'Vegetables' },
   { text: 'Cheese' },
   { text: 'Whatever else humans are supposed to eat' }
  ]
 }
})

模板:

<div id="app-7">
 <ol>
  <!--因为注册了全局的todo-item组件,所以在挂载范围内我们可以直接使用todo-item标签,来引用这个组件,-->
  <!--组件内部会被 todo-item配置表里的template替换,用来渲染。属性todo也是配置对象里规定的,可以接受的参数。-->
  <todo-item v-for="item in groceryList" v-bind:todo="item"></todo-item>
 </ol>
</div>

子组件

实际项目开发中,我们更多的使用的是子组件。

我们刚刚说的每个组件都有一个配置表,就是一个js对象,比如:

{
 props: ['todo'],
 template: '<li>{{ todo.text }}</li>'
}

我们把这份配置引入到实例化对象里,就可以成为这个vue对象的子组件,比如:

new Vue({
  components: {
    'component-a' : {
       props: ['todo'],
       template: '<li>{{ todo.text }}</li>'
    }
  }
})

这样的话,我们和之前全局组件一样,也可以在实例化对象挂载的范围内,直接使用<component-a>标签来引用组件。

那么接下来,我们考虑一下,子组件里也可以有自己的子组件,比如:

new Vue({
  components: {
    'component-a' : {
       props: ['todo'],
       template: '<li>{{ todo.text }}</li>',
       components: {
          'component-b' : {
             template: 'i am component b',
             components: {
                ...
             }
          }
       }
    }
  }
})

那么这样下去,我们可以有无数个子组件,形成一个组件树:

vue.js指令和组件详细介绍及实例

所以,一个vue.js架构的网站,我们可以看成是一个个组件的开发,最终存在一个根节点,就是项目里唯一实例化的Vue对象,而这一个个组件,其实就是一份份配置对象,以及它们对应的template 模板(html片段)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js判断输入是否为中文的函数
Mar 10 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
将form表单通过ajax实现无刷新提交的简单实例
Oct 12 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
Oct 28 Javascript
Vue学习之路之登录注册实例代码
Jul 06 Javascript
vue组件初学_弹射小球(实例讲解)
Sep 06 Javascript
Node.js学习之查询字符串解析querystring详解
Sep 28 Javascript
js正则相关知识点专题
May 10 Javascript
vue通过点击事件读取音频文件的方法
May 30 Javascript
微信小程序url传参写变量的方法
Aug 09 Javascript
vue实现点击选中,其他的不选中方法
Sep 05 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 Javascript
javascript闭包功能与用法实例分析
Apr 06 #Javascript
深入理解 JavaScript 中的 JSON
Apr 06 #Javascript
ES6中module模块化开发实例浅析
Apr 06 #Javascript
ES6中class类用法实例浅析
Apr 06 #Javascript
ES6中Proxy代理用法实例浅析
Apr 06 #Javascript
ES6中Symbol类型用法实例详解
Apr 06 #Javascript
vue中mint-ui环境搭建详细介绍
Apr 06 #Javascript
You might like
swfupload 多文件上传实现代码
2008/08/27 PHP
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
ThinkPHP3.1新特性之命名范围的使用
2014/06/19 PHP
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
vue组件生命周期详解
2017/11/07 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
[03:06]2018年度CS GO最具人气解说-完美盛典
2018/12/16 DOTA
python小技巧——将变量保存在本地及读取
2020/11/13 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
英语自荐信范文
2013/12/11 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
消防战士优秀事迹材料
2014/02/13 职场文书
公司请假条范文
2014/04/11 职场文书
教师业务培训方案
2014/05/01 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
2016年元旦主持词
2015/07/06 职场文书
清明扫墓感想
2015/08/11 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
创业计划书之寿司
2019/07/19 职场文书
导游词之杭州西湖
2019/09/19 职场文书
Centos环境下Postgresql 安装配置及环境变量配置技巧
2021/05/18 PostgreSQL
详解MindSpore自定义模型损失函数
2021/06/30 Python