全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

大家好,本文给各位做一下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接管了#app元素,这里面的所有内容归我管,也就是说可以接受vue的功能指令。


第二步是在#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对象,而这一个个组件,其实就是一份份配置对象,以及它们对应的template 模板(html片段)。

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


# vue.js指令  # vue  # 组件  # 指令和组件的区别  # vue.js指令v-model使用方法  # vue.js中指令Directives详解  # Vue.js自定义指令的用法与实例解析  # Vue.JS入门教程之自定义指令  # vue.js指令v-model实现方法  # Vue.js第一天学习笔记(数据的双向绑定、常用指令)  # Vue.js常用指令汇总(v-if、v-for等)  # vue.js指令v-for使用及索引获取  # vue.js通过自定义指令实现数据拉取更新的实现方法  # Vue.js每天必学之指令系统与自定义指令  # 我们可以  # 是一个  # 自己的  # 的是  # 这一  # 是在  # 都有  # 有很多  # 并在  # 这段  # 这份  # 这样一个  # 还有一个  # 大家好  # 体现在  # 这里面  # 方法来  # 里也  # 所有内容  # 来完成 


相关文章: 建站主机如何选?高性价比方案全解析  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  如何选择最佳自助建站系统?快速指南解析优劣  ,网页ppt怎么弄成自己的ppt?  如何快速搭建FTP站点实现文件共享?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  制作证书网站有哪些,全国城建培训中心证书查询官网?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  存储型VPS适合搭建中小型网站吗?  宿州网站制作公司兴策,安徽省低保查询网站?  如何选择适配移动端的WAP自助建站平台?  建站之星如何助力企业快速打造五合一网站?  中山网站制作网页,中山新生登记系统登记流程?  广州商城建站系统开发成本与周期如何控制?  c# 服务器GC和工作站GC的区别和设置  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  实例解析Array和String方法  哈尔滨网站建设策划,哈尔滨电工证查询网站?  建站主机是否属于云主机类型?  建站主机如何安装配置?新手必看操作指南  如何快速登录WAP自助建站平台?  如何用美橙互联一键搭建多站合一网站?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  C++如何使用std::optional?(处理可选值)  桂林网站制作公司有哪些,桂林马拉松怎么报名?  制作网站公司那家好,网络公司是做什么的?  网站制作模板下载什么软件,ppt模板免费下载网站?  建站ABC备案流程中有哪些关键注意事项?  如何快速使用云服务器搭建个人网站?  如何通过VPS建站实现广告与增值服务盈利?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何在云虚拟主机上快速搭建个人网站?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  Android自定义listview布局实现上拉加载下拉刷新功能  建站之星CMS建站配置指南:模板选择与SEO优化技巧  建站之星伪静态规则如何正确配置?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  教学论文网站制作软件有哪些,写论文用什么软件 ?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何通过虚拟机搭建网站?详细步骤解析  制作宣传网站的软件,小红书可以宣传网站吗?  开源网站制作软件,开源网站什么意思?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  韩国服务器如何优化跨境访问实现高效连接?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  盐城做公司网站,江苏电子版退休证办理流程? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。