前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vue中组件

Vue中组件

作者头像
小小咸鱼YwY
发布于 2019-09-11 07:04:49
发布于 2019-09-11 07:04:49
1.1K00
代码可运行
举报
文章被收录于专栏:python-爬虫python-爬虫
运行总次数:0
代码可运行

0828自我总结

Vue中组件

一.组件的构成

组件:由 template + css + js 三部分组成(.vue文件)

  • 1)组件具有复用性
  • 2) 复用组件时,数据要隔离
  • 3) 复用组件时,方法不需要隔离,因为方法使用隔离数据就可以产生区别

组件介绍:

  • 1) 每一个组件都有自己的template(虚拟DOM),最后要替换掉真实DOM(渲染)
  • 2) 挂载点el,在根组件没有规定template,用挂载的真实DOM拷贝出虚拟DOM,完成实例创建后再替换掉真实DOM(渲染)
  • 3) 挂载点el,在根组件规定template,就采用自己的template作为虚拟DOM,挂载点还是必须的,用于占位
  • 4) 所有 new Vue() 产生的组件都称之为根组件 - 项目开发时,整个项目只有一个根组件
  • 5) template只能解析一个根标签

二.template的使用

用法一-把整个vue所关联的内容替换

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="app">
    {{ msg }}
</div>
<script src="vue.js"></script>
<script>
    new Vue({
        el: '#app',
        data: {
            msg: 'message'
        },
        // template: '<div id="main"><p>{{ msg }}</p><p>{{ msg }}</p></div>'
        template: `
        <div id="main">
            <p>{{ msg }}</p>
            <p>{{ msg }}</p>
        </div>
        `,
    })
</script>

最后显示的效果为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
message
message

其实他是先出现message

然后由于后面的template会生成一个临时的dom,会把前面el关联的整个标签变成template中的内容

用法二-局部组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <div id="app">
        <!--3)组件渲染-->
        <local-tag></local-tag>
        <local-tag></local-tag>
        <local-tag></local-tag>
    </div>
<script src="js/vue.js"></script>
<script>
    // 1)创建组件
    let localTag = {
        template: '<p>66666</p>'
    };
    new Vue({
        el: '#app',
        // 2)注册组件
        components: {
            // localTag: localTag,  函数名和组件名相同可以直接简写成一个名字
            localTag
        }
    })
</script>

局部组件可以分三步

  • 创建组件
  • 注册组件
  • 网页中渲染

用法三-全局组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="main">
    <global-tag></global-tag>
</div>
<script src="vue.js"></script>
<script>
    // 全局组件
    // 1)创建组件
    // 2)渲染组件
    // 3) 使用到全局组件的内容必须用Vue进行挂载,如果不挂载全局组件只是个普通的自定义标签
    Vue.component('global-tag', {
        template: '<p>66666</p>'
    });
    new Vue({
        el: '#main',
    });
</script>

使用到全局组件的内容必须用Vue进行挂载,如果不挂载全局组件只是个普通的自定义标签

注意点

  • template中只能有一个根标签,如果有多个,只生效第一个
  • template内容如果要多行显示方便观察的话用反引号`来代替双引号或者单引号

三.组件复用的数据隔离

1.局部组件中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <div id="app">
        <!--3)组件渲染-->
        <local-tag></local-tag>
        <local-tag></local-tag>
        <local-tag></local-tag>
    </div>
<script src="vue.js"></script>
<script>
    // 1)创建组件
    let localTag = {
        data:function(){
            return {
                msg:100
            }
        },
        template: '<p>{{msg}}</p>'
    };
    new Vue({
        el: '#app',
        // 2)注册组件
        data:{
            msg:20
        },
        components: {
            // localTag: localTag,  函数名和组件名相同可以直接简写成一个名字
            localTag
        }
    })
</script>
  • 把data里面值放function中当然了function可以不用写省略掉
  • 而且不会受vue中msg影响,只受组件中的msg影响

2,全局组件中

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="main">
    <global-tag></global-tag>
</div>
//<global-tag></global-tag> 这样就是个普通的自定义标签
<script src="vue.js"></script>
<script>
    // 全局组件
    // 1)创建组件
    // 2)渲染组件
    // 3) 使用到全局组件的内容必须用Vue进行挂载,如果不挂载全局组件只是个普通的自定义标签
    // 4) 这里的全局不是指整个网页而是指与vue进行挂载那些全部的部分
    Vue.component('global-tag', {
                data:function(){
            return {
                msg:100
            }
        },
        template: '<p>{{msg}}</p>'
    });
    new Vue({
        el: '#main',
        data:{
            msg:10
        }
    });
</script>

特点和局部相同

四.组件信息交互父传子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="app">
    <local-tag :ad_dic="ad" v-for="ad in ads" :key="ad.img"></local-tag>
</div>
<script src="js/vue.js"></script>
<script>
    let localTag = {
        props: ['ad_dic'],
        template: `
        <div class="ad">
            <img :src="ad_dic.img" alt="">
            <h4>{{ ad_dic.title }}</h4>
        </div>
        `,
    };

    // 模拟后台的数据
    let ads = [
        {
            'img': 'img/001.png',
            'title': '小猫'
        },
        {
            'img': 'img/002.png',
            'title': '黄蛋'
        },
        {
            'img': 'img/003.png',
            'title': '蓝蛋'
        },
        {
            'img': 'img/004.png',
            'title': '短腿'
        },
    ];
    new Vue({
        el: '#app',
        data: {
            ads,  // 后期项目是后台返回的数据
        },
        components: {
            localTag
        }
    })
    // 分析数据 父传子
    // 1)父组件提供数据
    // 2)在父组件模板中,为子组件标签设置自定义属性绑定父级数据
    // 3)在子组件props成员中,接收自定义属性
    // 4)在子组件模板和方法中,使用自定义属性名就可以访问父级数据
</script>

简单总结

父级模板:<local-tag :属性名="父级的数据" v-for="ad in ads" :key="ad.img"></local-tag>

子级模板: props: ['属性名'],

五.组件信息交互子传父

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="app">
    <p>
        <input type="text" v-model="info">
        <button @click="add_msg">留言</button>
    <ul>
        <msg-tag @del_action="del_li" :msg="msg" :index="i" v-for="(msg, i) in msgs" :key="msg"></msg-tag>
    </ul>
    </p>
</div>

<script src="js/vue.js"></script>
<script>
    let msgTag = {
        props: ['msg', 'index'],
        template: `
        <li>
            <span @click="del_fn" class="del">x</span>
            <span>{{ msg }}</span>
        </li>
        `,
        methods: {
            del_fn() {
                this.$emit('del_action', this.index)
            }
        }
    };
    new Vue({
        el: '#app',
        components: {
            msgTag
        },
        data: {
            info: '',
            msgs: JSON.parse(sessionStorage.msgs || '[]'),
        },
        methods: {
            add_msg() {
                let info = this.info;
                if (info) {
                    this.msgs.unshift(this.info);
                    this.info = '';
                    sessionStorage.msgs = JSON.stringify(this.msgs);
                }
            },
            del_li(index) {
                console.log(index);
                this.msgs.splice(index, 1);
                sessionStorage.msgs = JSON.stringify(this.msgs);
            }
        }
    });
    // 分析数据 子传父
    // 1)子组件提供数据
    // 2)子组件通过系统事件激活自己的绑定方法,发送一个自定义事件,携带自身数据
    // 3)在父组件模板中的子组件标签中为自定义事件绑定父组件方法
    // 4)父组件实现方法获取到子组件数据
</script>

简单总结

子级模板: <span @系统自带的属性="子级方法" class="del">x</span>

子级实例方法中:this.$emit('自定义事件',子级数据们)

父级模板:<msg-tag @自定义事件="父级的方法" v-for="(msg, i) in msgs" :key="msg"></msg-tag>

父级方法: 父级的方法(子级的数据们){处理与子级相关的函数}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
年底了,领导让我统计这样的销量,怎么办?
【面试题】下面左表是项目对应的销量,需要把同一项目的销量在合并单元格里计算出销量总额及平均值(实现右表这样的效果)
猴子数据分析
2020/12/16
5090
Excel:Ctrl+F人人都会用,但这3个技巧99%的人不知道
本文为简书作者傲看今朝原创,CDA数据分析师已获授权。 查找与替换是Excel中最为简单实用的功能之一,几乎用过Excel的人都知道这个功能,也都会简单使用这个功能。然而,今天介绍的这3个技巧却有99
CDA数据分析师
2018/02/24
2.5K0
Excel:Ctrl+F人人都会用,但这3个技巧99%的人不知道
Excel小技巧93:快速选择超10000个单元格
有时候,我们可能需要选择大量的单元格,例如选择单元格区域A1:A20000。通常,我们会使用鼠标拖动的方法来选择,先选择单元格A1,然后拖动鼠标至单元格A20000,如下图1所示。
fanjy
2021/09/22
1.2K0
啰哩啰嗦地讲透VBA中引用单元格区域的18个有用方法--Range属性
引言:本文学习整理自powerspreadsheets.com,讲解得很细致,一些知识点反复强调,对于熟悉VBA的朋友来说,感觉有点啰嗦,但是对于VBA初学者来说,对快速掌握Range对象的引用,却很有好处。
fanjy
2022/01/07
6.8K0
啰哩啰嗦地讲透VBA中引用单元格区域的18个有用方法--Range属性
Excel实战技巧105:转置数据的3种方法
所谓转置数据,就是将数据从水平转变成垂直,或者从垂直转变成水平。换句话说,在Excel工作表中,将行中的数据转变到列中,将列中的数据转变到行中。下面将展示3种转置数据的方法:
fanjy
2021/07/12
7.5K0
Excel小技巧:使用Shift键移动单元格
‍如下图1所示,在单元格区域A1:B4中有一组数据,单元格区域D6:E6中有一行数据。
fanjy
2022/11/16
1.1K0
Excel小技巧:使用Shift键移动单元格
Excel表格中最经典的36个小技巧,全在这儿了
技巧1、单元格内强制换行 技巧2、锁定标题行 技巧3、打印标题行 技巧4、查找重复值 技巧5、删除重复值 技巧6、快速输入对号√ 技巧7、万元显示 技巧8、隐藏0值 技巧9、隐藏单元格所有值。 技巧10、单元格中输入00001 技巧11、按月填充日期 技巧12、合并多个单元格内容 技巧13、防止重复录入 技巧14、公式转数值 技巧15、小数变整数 技巧16、快速插入多行 技巧17、两列互换 技巧18、批量设置求和公式 技巧19、同时查看一个excel文件的两个工作表。 技巧20:同时修改多个工作表 技巧21:恢复未保存文件 技巧22、给excel文件添加打开密码 技巧23、快速关闭所有excel文件 技巧24、制作下拉菜单 技巧25、二级联动下拉 技巧27、删除空白行 技巧28、表格只能填写不能修改 技巧29、文字跨列居中显示 技巧30、批注添加图片 技巧31、批量隐藏和显示批注 技巧32、解决数字不能求和 技巧33、隔行插入空行 技巧34、快速调整最适合列宽 技巧35、快速复制公式 技巧36、合并单元格筛选
统计学家
2019/09/25
8.4K0
Excel表格中最经典的36个小技巧,全在这儿了
Excel实战技巧:基于单元格的值显示相应的图片
选择零件号,显示相应的零件图;选择员工姓名,显示该员工相片,等等,都是选择单元格中的值而显示相应的图片的例子,也就是说基于单元格的值查找并显示对应的图片,单元格的值改变,图片也自动改变。效果如下图1所示。
fanjy
2023/02/24
9.8K0
Excel实战技巧:基于单元格的值显示相应的图片
Excel小技巧91:合并单元格且不丢失数据
有时候,我们需要合并多个单元格,然而,当选择要合并的单元格,并使用“合并单元格”命令后,Excel会给出如下图1所示的提示,只保留左上角单元格中的数据。
fanjy
2021/08/31
5.6K0
Excel小技巧91:合并单元格且不丢失数据
20个Excel操作技巧,提高你的数据分析效率
今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客中国丨趣头条丨腾讯云·云+社区
数据猿
2019/08/06
2.5K0
关于Excel单元格区域,可能有99%的人都不知道的事
在Excel工作表中执行操作,我们都要使用单元格区域,例如,我们在开始单元格和结束单元格之间使用冒号(:)来选择单元格区域,可能会附加美元符号($)来固定单元格引用。然而,你真正了解使用单元格区域的所有基本方法吗?本文将为你逐一讲解。
fanjy
2023/02/24
1.3K0
关于Excel单元格区域,可能有99%的人都不知道的事
精通Excel数组公式15:使用INDEX函数和OFFSET函数创建动态单元格区域(续)
导语:本文为《精通Excel数组公式14:使用INDEX函数和OFFSET函数创建动态单元格区域》的后半部分。
fanjy
2021/03/12
4.3K0
关于单元格区域,99%的用户都不知道的事儿
在Excel中使用单元格区域是最基础的操作,似乎一切都自然而然,不需要教,例如,选择一些单元格,开始单元格和结束单元格之间会有一个:(冒号)符号,也许可以加入几个$(美元符号)来固定单元格引用的位置。
fanjy
2023/08/30
2590
关于单元格区域,99%的用户都不知道的事儿
Excel图表学习:创建带有阴影区域的正态曲线图
打开一个新工作簿,至少包含有三个工作表,其名称分别为:Control,Data和Reports。
fanjy
2023/02/14
1.5K0
Excel图表学习:创建带有阴影区域的正态曲线图
VBA实战技巧26:使用递归确定所有的引用单元格
在Excel中,经常存在一个单元格引用另一个单元格中,而另一个单元格又引用其他单元格的情形。如何使用VBA代码编程确定指定单元格的所有引用单元格呢?
fanjy
2021/07/12
1.5K0
VBA实战技巧26:使用递归确定所有的引用单元格
Excel小技巧77:6个简单的方法,批量应用公式到整列
公式使电子表格“活”了起来。有时,我们会在一个单元格或者多个单元格中应用公式,但在很多情况下,我们需要将公式应用于整列(或者一列中的许多单元格)。为此,Excel提供了多种不同的方法,你只需使用鼠标单击几次或者使用快捷键,就可以完成这样的操作。
fanjy
2021/02/05
60.8K0
Excel表格的35招必学秘技[配图]
一、让数据按需排序   如果你要将员工按其所在的部门进行排序,这些部门名称既的有关信息不是按拼音顺序,也不是按笔画顺序,怎么办?可采用自定义序列来排序。   1.执行“格式→选项”命令,打开“选项”
ytkah
2018/03/06
7.9K0
Excel表格的35招必学秘技[配图]
Excel中如何实现粘贴或下拉填充时不改变单元格已设置线条及相关格式?
Excel单元格中已设置有固定线条或相关背景、格式,怎么样能在粘贴或下拉填充时原来的线条或格式不变——针对这个问题,其实比较简单,以下分开两种情况逐一说明:
大海Power
2021/08/30
7.7K0
Excel 公式、图表以及单元格的操作
SUM 函数将值相加,可以将单个值、单元格引用或是区域相加,或者将三者的组合相加。例如: =SUM(A1:A3)将单元格 A1:A3 中的值加在一起,=SUM(A1:A3,B1:B3)将单元格 A1:A3 以及单元格 B1:B3 中的值加在一起。语法:SUM(number1,[number2],…),number1(必需):要相加的第一个数字。该数字可以是 4 之类的数字,A1 之类的单元格引用或 A1:A3 之类的单元格范围。number2(可选):要相加的第二个数字。可以按照这种方式最多指定 255 个数字。下面我们来看怎么通过 Python 使用 SUM 函数。代码如下:
芯动大师
2022/11/15
1.3K0
Excel 公式、图表以及单元格的操作
Excel 常用的九十九个技巧 Office 自学教程快速掌握办公技巧
Microsoft Excel 是微软为 Windows、macOS、Android 和 iOS 开发的电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测,并且具有强大的制作图表的功能。由于 Excel 具有十分友好的人机界面和强大的计算功能,它已成为国内外广大用户管理公司和个人财务、统计数据、绘制各种专业化表格的得力助手。允许用户自定义界面的电子制表软件包括字体、文字属性和单元格格式,它还引进了智能重算的功能,当单元格数据变动时,只有与之相关的数据才会更新,荒岛本次带来九十九个 Excel 技巧,提高您的办公效率。
ximagine
2023/05/05
7.5K0
推荐阅读
相关推荐
年底了,领导让我统计这样的销量,怎么办?
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 0828自我总结
  • Vue中组件
    • 一.组件的构成
    • 二.template的使用
      • 用法一-把整个vue所关联的内容替换
      • 用法二-局部组件
      • 用法三-全局组件
    • 三.组件复用的数据隔离
      • 1.局部组件中
      • 2,全局组件中
    • 四.组件信息交互父传子
    • 五.组件信息交互子传父
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档