作者:丁木China | 来源:互联网 | 2022-10-12 14:07
组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义
组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以is
特性扩展。个人认为就是一个可以重复利用的结构层代码片段。
全局组件注册方式:Vue.component(组件名,{方法})
eg:
渲染结果:
这里需要注意:
1.全局组件必须写在Vue实例创建之前,才在该根元素下面生效;
eg:
这样只会渲染app1根元素下面的,并不会渲染app根元素下面的,并且会报错。
2.模板里面第一级只能有一个标签,不能并行;
这样子会报错,并且只会渲染第一个标签h1;我们应该这样子写:
局部组件注册方式,直接在Vue实例里面注册
eg:
局部组件需要注意:
1.属性名为components,s千万别忘了;
2.套路比较深,所以建议模板定义在一个全局变量里,代码看起来容易一点,如下:(模板标签比较多的时候,这样子写更加简洁规整)
关于组件中的其他属性,可以和实例中的一样,但是data属性必须是一个函数:
eg:
显示结果:
全局组件和局部组件一样,data也必须是一个函数:
显示结果:
当使用 DOM 作为模板时 (例如,将el
选项挂载到一个已存在的元素上),你会受到 HTML 的一些限制,因为 Vue 只有在浏览器解析和标准化 HTML 后才能获取模板内容。尤其像这些元素
,
,,
限制了能被它包裹的元素,而一些像
这样的元素只能出现在某些其它元素内部。
自定义组件
被认为是无效的内容,因此在渲染的时候会导致错误。变通的方案是使用特殊的is
属性:
eg:
渲染结果为:
对于全局与局部的作用域问题,我们可以这样理解,只要变量是在组件内部用的,这些变量必须是组件内部的,而在外部html结构中引用的变量,都引用的是该挂载下的实例里面的变量
eg:
弹出框显示:我是局部
Vue中所谓的全局指的是该挂载下的区域;
下面这种做法是错误的,按我的想法觉得应该会弹出:我是全局,但是却报错,也就是说组件处于全局下不可以添加默认事件,要用全局的事件函数,必须父子通信
额外话题:
1.函数return后面必须跟返回的内容,不能换行写
eg:
下面这种写法不会返值回来:
2.Vue和小程序等一样,采用es6的函数写法,this指向是不一样的
结果:
第一个this指的是Vue实例
第二个this指的是Window
由于它和小程序不一样,我发现在data里面this指的是window,在methods里面this才是Vue实例
所以建议大家用es5写吧
new Vue({
el:"#app1",
data:{that:this},
})
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ...
[详细]
蜡笔小新 2023-10-17 19:45:53
本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ...
[详细]
蜡笔小新 2023-12-11 18:21:09
一、根据题意,填写出空格中的内容Java平台包括三个技术方向,其中J2ME代表____________、J2SE代表___________、J2EE代表 ...
[详细]
蜡笔小新 2023-10-17 18:52:44
PHP小习题:PHP小练习题前几天在百度知道里面看到有位网友询问如何制作一下的小程序:用php语言设计一个小程序,计算今天到达下月的天数、全部输出这些天数,并使得每天的日期以三种颜 ...
[详细]
蜡笔小新 2023-10-17 16:17:07
只是为了更好地理解我在讲座中听到的内容(关于Java输入和输出流),我自己做了这个小程序:publicstaticvoidmain(String[]args)thro ...
[详细]
蜡笔小新 2023-10-17 16:15:33
项目需要实现弹幕,网上参考了各种方法,最后觉得transform+transition实现的效果在移动设备上性能最好,在iphone6和红米4上测试,看不到 ...
[详细]
蜡笔小新 2023-10-17 12:33:46
Vue监听属性是watch,我们可以通过watch来响应数据的变化。代码示例: ...
[详细]
蜡笔小新 2023-10-16 19:33:09
认识Vue关于Vue的描述有不少,不外乎都会拿来与Angular和React对比,同样头顶MVVM双向数据驱动设计模式光环的Angular自然被对比的最多,但到目前为止,Angul ...
[详细]
蜡笔小新 2023-10-16 17:12:49
<!DOCTYPEhtml><htmllang=en><head><metacharset=UT ...
[详细]
蜡笔小新 2023-10-16 06:20:19
vue.js如何实现数据的双向绑定呢?与angular不同。vue利用的是es5的defineproperty特性。1.一个小例子 ...
[详细]
蜡笔小新 2023-10-15 16:30:40
本文讨论了如何在微信支付宝两套小程序中生成一张二维码,实现支付宝扫码进入支付宝小程序和微信扫码进入微信小程序的对应桌号进行点餐的功能,提供了一些实现方案供参考。 ...
[详细]
蜡笔小新 2023-12-13 12:47:25
在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ...
[详细]
蜡笔小新 2023-12-12 18:04:44
本文介绍了一款名为程序安装包制作工具 v1.0官方版的软件,该软件可以用于应用程序的安装打包,只需几步就能完成整个安装向导程序的制作。你可以将编译好的应用程序和相关文件打包生成一个可执行的安装文件进行发布。该软件免费下载,下载网址为http://www.xiazai.com/wins6890。 ...
[详细]
蜡笔小新 2023-12-12 12:11:42
2021年11月30日,微信开始进行“开放外链”的第二阶段,允许在微信个人会话中打开外部链接和在微信群中打开电商链接。虽然这是腾讯和阿里巴巴都能接受的阶段性结果,但双方都不会太满意。接下来几个月,腾讯和阿里将展开复杂的博弈,我们作为外人很难看清全过程。工信部从未要求腾讯无条件开放微信API,本次开放的也只是普通的HTTP链接。 ...
[详细]
蜡笔小新 2023-12-12 10:04:42
本文讨论了小学编程普及的必要性,以及学生在学习编程过程中所需具备的数学能力和综合能力。通过采访获奖的牛娃发现,学习编程需要耐得住寂寞,并且需要花费大量的时间和精力。 ...
[详细]
蜡笔小新 2023-12-12 08:36:44