三生区块链 三生区块链
首页
  • 🔗 浅说区块链

    • 什么是区块链
    • 区块链运行机制
    • 共识机制解析
    • 区块链应用类型
    • 区块链与数字货币
    • 体验数字货币
    • 区块链的误区
    • 主流区块链项目
  • 💰 数字货币与资产

    • 比特币专题(一)
    • 比特币专题(二)
    • 数字货币与资产
    • 数字货币交易平台(一)
    • 数字货币交易平台(二)
  • 🌐 区块链与互联网

    • 互联网与区块链身份
    • 区块链即服务BaaS
    • 数字货币钱包服务
    • 区块链与供应链(一)
    • 区块链与供应链(二)
  • 🚀 如何从业

    • 区块链从业指南
    • 搭建迷你区块链(设计篇)
应用
  • 🛠 基础概念

    • 技术基础
    • 哈希与加密算法
    • UTXO与普通账户模型
    • 去中心化与区块链交易性能
  • 🔗 区块链类型与项目

    • 区块链项目详解:比特股BTS
    • 引人瞩目的区块链项目:EOS、IOTA、Cardano
    • 国内区块链项目技术一览
  • 🔐 加密与安全

    • P2P网络
    • 共识算法与分布式一致性算法
    • PoW共识
    • PoS
    • DPos
  • 💻 开发与实践

    • 智能合约与以太坊
    • 搭建一条属于自己的智能合约
  • 🔄 联盟链

    • 联盟链和它的困境
行业动态
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 📚 学习
  • 💡 心情杂货
  • 🔗 友情链接
关于
  • 🌐 网站
  • 📦 资源
  • 📂 分类
  • 🏷 标签
  • 📅 归档

三生

区块链小菜鸟(✪ω✪)
首页
  • 🔗 浅说区块链

    • 什么是区块链
    • 区块链运行机制
    • 共识机制解析
    • 区块链应用类型
    • 区块链与数字货币
    • 体验数字货币
    • 区块链的误区
    • 主流区块链项目
  • 💰 数字货币与资产

    • 比特币专题(一)
    • 比特币专题(二)
    • 数字货币与资产
    • 数字货币交易平台(一)
    • 数字货币交易平台(二)
  • 🌐 区块链与互联网

    • 互联网与区块链身份
    • 区块链即服务BaaS
    • 数字货币钱包服务
    • 区块链与供应链(一)
    • 区块链与供应链(二)
  • 🚀 如何从业

    • 区块链从业指南
    • 搭建迷你区块链(设计篇)
应用
  • 🛠 基础概念

    • 技术基础
    • 哈希与加密算法
    • UTXO与普通账户模型
    • 去中心化与区块链交易性能
  • 🔗 区块链类型与项目

    • 区块链项目详解:比特股BTS
    • 引人瞩目的区块链项目:EOS、IOTA、Cardano
    • 国内区块链项目技术一览
  • 🔐 加密与安全

    • P2P网络
    • 共识算法与分布式一致性算法
    • PoW共识
    • PoS
    • DPos
  • 💻 开发与实践

    • 智能合约与以太坊
    • 搭建一条属于自己的智能合约
  • 🔄 联盟链

    • 联盟链和它的困境
行业动态
  • 摘抄收录

    • ☆ 励志鸡汤
    • ❀ 人间烟火
    • ☣ 万物沦丧
    • ✌ 关掉烦恼
    • ✲ 小酒馆
  • 读书笔记

    • 《小狗钱钱》
    • 《穷爸爸富爸爸》
    • 《聪明人使用方格笔记本》
  • 📚 学习
  • 💡 心情杂货
  • 🔗 友情链接
关于
  • 🌐 网站
  • 📦 资源
  • 📂 分类
  • 🏷 标签
  • 📅 归档
  • 基础

  • 组件

    • 使用组件的细节点
      • 解析 DOM 模板时的注意事项
      • 子组件内的data要使用函数返回
      • 通过 ref 引用操作DOM
    • 父组件给子组件传值
    • 子组件派发事件和值给父组件
    • Prop 验证 与 非 Prop 的 Attribute
    • 自定义事件
    • 兄弟组件传值
    • 非父子组件传值
    • 父组件调用子组件方法并传入值
    • 插槽slot
    • 动态组件与 v-once 指令
    • vue父子组件的生命周期顺序
  • 过渡&动画

  • 可复用性&组合

  • 工具

  • 规模化

  • 其他

  • 《Vue》笔记
  • 组件
三生
2020-02-13

使用组件的细节点

# 使用组件的细节点

# 解析 DOM 模板时的注意事项

<div id="root">
    <table>
        <tbody>
            <row></row>
            <row></row>
            <row></row>
        </tbody>
    </table>
</div>
<script type="text/javascript">
    Vue.component('row', {
        template: '<tr><td>this is a row</td></tr>'
    })
    var vm = new Vue({
        el: '#root'
    })
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

上面代码中,row 组件在渲染页面时,并不会把tr节点渲染到tbody里面,而是被提升到了和table同一个级别的地方。原因是在html编码规范中,tbody里面只能放tr,正确的做法是使用tr标签添加is属性等于组件名称row :

<tbody>
    <tr is="row"></tr>
    <tr is="row"></tr>
    <tr is="row"></tr>
</tbody>
1
2
3
4
5

同样,ul>li、ol>li、select > option 标签也要注意这样的问题。

需要注意的是如果我们从以下来源使用模板的话,这条限制是不存在的:

  • 字符串 (例如:template: '...')
  • 单文件组件 (.vue)
  • <script type="text/x-template">

# 子组件内的data要使用函数返回

Vue.component('row', {
    data() {
        return {
            content: 'this is content'
        }
    },
    template: '<tr><td>{{content}}</td></tr>'
})
1
2
3
4
5
6
7
8

之所以这样设计是因为子组件有可能会被调用多次,而每次调用时的data数据都应该是独立的。因此需要通过一个函数来实现,每个实例可以维护一份被返回对象的独立的拷贝。

这样才不会出现每个子组件数据相互影响的情况。

# 通过 ref 引用操作DOM

ref

虽然并不推荐我们在使用vue的时候操作DOM,但是某些情况下我们必须要操作DOM来实现一些功能,因此可以通过ref引用的形式来获取到DOM节点。

<!-- `vm.$refs.p` 指向DOM元素节点 -->
<p ref="p">hello</p>

<!-- `vm.$refs.child` 指向组件实例 -->
<child-component ref="child"></child-component>
1
2
3
4
5

ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例。

组件实例对象 VueComponent

打开控制台,点击demo中的按钮可查看组件实例

See the Pen VwLeMoM by xugaoyi (@xugaoyi) on CodePen.

上次更新: 2020/07/17, 13:07:00
列表渲染之数组、对象更新检测
父组件给子组件传值

← 列表渲染之数组、对象更新检测 父组件给子组件传值 →

最近更新
01
到底什么才是区块链?
10-08
02
区块链的运行机制
10-08
03
费曼学习法
10-08
更多文章>
Theme by Vdoing | Copyright © 2023-2025 三生区块链 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式