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

发布时间 - 2026-01-11 00:32:34    点击率:

大家好,本文给各位做一下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每天必学之指令系统与自定义指令  # 我们可以  # 是一个  # 自己的  # 的是  # 这一  # 是在  # 都有  # 有很多  # 并在  # 这段  # 这份  # 这样一个  # 还有一个  # 大家好  # 体现在  # 这里面  # 方法来  # 里也  # 所有内容  # 来完成 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel如何配置任务调度?(Cron Job示例)  如何正确下载安装西数主机建站助手?  如何续费美橙建站之星域名及服务?  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  EditPlus 正则表达式 实战(3)  Laravel中的withCount方法怎么高效统计关联模型数量  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  java中使用zxing批量生成二维码立牌  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  高防服务器租用首荐平台,企业级优惠套餐快速部署  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  高端网站建设与定制开发一站式解决方案 中企动力  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  深圳网站制作的公司有哪些,dido官方网站?  进行网站优化必须要坚持的四大原则  如何用PHP快速搭建CMS系统?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧  linux写shell需要注意的问题(必看)  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  如何在云主机上快速搭建多站点网站?  南京网站制作费用,南京远驱官方网站?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  ,南京靠谱的征婚网站?  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  如何用wdcp快速搭建高效网站?  高防服务器租用如何选择配置与防御等级?  如何确保FTP站点访问权限与数据传输安全?  如何在万网ECS上快速搭建专属网站?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Python进程池调度策略_任务分发说明【指导】  php json中文编码为null的解决办法  EditPlus中的正则表达式 实战(2)  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  详解Huffman编码算法之Java实现  canvas 画布在主流浏览器中的尺寸限制详细介绍  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何在Windows虚拟主机上快速搭建网站?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  Python函数文档自动校验_规范解析【教程】