全国咨询热线:400-123-4567

外卖类微信小程序_详解vue 组件

类别:行业新闻 发布时间:2021-01-05 浏览人次:

这篇文章主要介绍了详解vue 组件的相关知识,文中讲解非常细致,代码供大家参考学习,感兴趣的朋友可以了解下

1. 数据驱动 - 数据驱动界面显示

2. 模块化 - 复用公共模块,组件实现模块化提供基础

组件渲染过程

template --- ast(抽象语法树) --- render --- VDom(虚拟DOM) --- 真实的Dom --- 页面

Vue组件需要编译,编译过程可能发生在

打包过程 (使用vue文件编写) 运行时(将字符串赋值template字段,挂载到一个元素上并以其 DOM 内部的 HTML 作为模板)

对应的两种方式 runtime-only piler

runtime-only(默认)

打包时只包含运行时,因此体积更少 将template在打包的时候,就已经编译为render函数,因此性能更好 打包时需要包含(运行时 + 编译器),因此体积更大,大概多10Kb 在运行的时候才把template编译为render函数,因此性能更差

vue.config.js(若没有手动创建一个)

module.exports = {
 runtimeCompiler: true //默认false
}

1. 字符串形式定义(不推荐)

例子

const CustomButton = {
 template: " button 自定义按钮 /button "
};

这种形式在运行时才把template编译成render函数,piler)

2. 单文件组件(推荐)

创建.vue后缀的文件,定义如下

 template 
 div 
 button 自定义按钮 /button 
 /div 
 /template 

template 里只能有一个根节点,即第一层只能有一个节点,不能多个节点平级

这种形式在打包的时就编译成render函数,因此跟推荐这种方式定义组件

1. 全局注册

import CustomButton from './components/ComponentDemo.vue'
ponent('CustomButton', CustomButton)

优点

其他地方可以直接使用 ponents指定组件

缺点

全局注册的组件会全部一起打包,增加app.js体积

适合

基础组件全局注册

2. 局部注册

在需要的地方导入

 template 
 div id="app" 
 customButton /customButton 
 /div 
 /template 
 script 
import CustomButton from "./components/ComponentDemo.vue";
export default {
 name: "App",
 components: { CustomButton }
 /script 

优点

按需加载

缺点

ponents指定

适合

非基础组件

组件复用

 template 
 div id="app" 
 img alt="Vue logo" src="./assets/logo.png" / 
 customButton /customButton 
 customButton /customButton 
 customButton /customButton 
 /div 
 /template 

customButton 组件

 template 
 div id="app" 
 button @click="increment" click me {{times}} times /button 
 /div 
 /template 
 script 
export default {
 data() {
 return { times: 0 };
 methods: {
 increment() {
 return this.times++;
 /script 

每个组件都会创建一个新实例,组件的data必须是function,因为每个实例维护自己的data数据

1. 通过pro凡科抠图属性

定义一个button,按钮文本通过pro凡科抠图传入

 template 
 button {{buttonText}} /button 
 /template 
 script 
export default {
 pro凡科抠图: {
 buttonText: String
 /script 

调用者通过attribute传入

 customButton buttonText="Button 1" /customButton 
 customButton buttonText="Button 2" /customButton 
 customButton buttonText="Button 3" /customButton 

运行效果

2. 通过插槽 slot /slot

组件在需要替换的地方放入插槽 slot /slot

 template 
 button slot Defalt Button /slot /button 
 /template 
 script 
export default {
 pro凡科抠图: {
 buttonText: String
 /script 

调用者的innerHtml会替换插槽的值,若为空,使用默认的

运行效果

注意:看到是用自定义组件的innerHtml替换插槽,若插槽只有一个,可以不写name attribute,若多个插槽需指定插槽name attribute

自定义事件

1. 在组件内部调用this.$emit触发自定义事件

 template 
 div 
 button @click="increment" 
 slot Defalt Button /slot 
 /button 
 span Click me {{times}} times /span 
 /div 
 /template 
 script 
export default {
 pro凡科抠图: {
 buttonText: String
 data() {
 return { times: 0 };
 methods: {
 increment() {
 this.times++;
 ("increment");
 /script 

2. 调用者监听自定义事件

 template 
 div id="app" 
 customButton @increment="handleIncrement" /customButton 
 customButton @increment="handleIncrement" 
 span Button 2 /span 
 /customButton 
 customButton @increment="handleIncrement" Button 3 /customButton 
 p Total click {{totalClicks}} times /p 
 /div 
 /template 
 script 
import CustomButton from "./components/ComponentDemo.vue";
export default {
 name: "App",
 components: { CustomButton },
 data() {
 return { totalClicks: 0 };
 methods: {
 handleIncrement() {
 this.totalClicks++;
 /script 

3. 运行效果

以上就是详解vue 组件的详细内容,更多关于vue组件的资料请关注凡科其它

推荐阅读

【上海网站优化】这样才能让百度中意你

您的部位: > 新闻报道新闻资讯 > 企业网站建设 > 【上海市seo优化】那样才可以让百度搜索钟意你新的一年里seo优化该怎样做才能让百度搜索钟意你,在2018有许多朋友问网编,为何一些...

2021-01-12
小程序发布流程_详解angularJs中自界说directive的数

详细说明angularJs中自定directive的数据信息互动 本文关键详细介绍了详细说明angularJs中自定directive的数据信息互动,网编感觉挺好的,如今共享给大伙儿,也给大伙儿做下参照。一...

2021-01-12
小程序界面设计模板_JavaScript自界说文本框光标

JavaScript自定文字框鼠标光标 文字框(input或textarea)的鼠标光标没法改动款式(除开根据color改动鼠标光标色调)。但小编期待本人建立自身的网站时,文字框的鼠标光标有归属于...

2021-01-12
网站推行需求剖析的根本数据目标【凡科】广州

重要词:网站实行要求分析的压根数据信息总体目标 现有 13 人访问 为何要开展网站数据信息分析?1、立即把握网站实行的实际效果,减少盲目跟风性;2、分析各种各样互联网营销推广...

2021-01-12
网站制作,专题活动网站建设

主题活动企业网站建设的要求 主题活动网站怎样反映特点,精准定位爱好群体? 主题活动网站怎样用品牌形象化的語言呈现商品的特点? 主题活动网站怎样吸引住潜在用户选购? 主题...

2021-01-12
解读《百度移动搜索建站优化白皮书》

百度搜索惊雷优化算法不久不久,又接到了百度搜索搜狗引擎建网站提升市场研究报告。以便让众多网站站长充足掌握百度搜索检索模块标准,并依据标准有效安全性基本建设网站、提...

2021-01-12
X

400-8700-617400-123-4567
企业邮箱1497847554@qq.com
官方微信