码迷,mamicode.com
首页 > 其他好文 > 详细

vue_组件细节点

时间:2020-03-05 15:27:56      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:template   javascrip   counter   count   get   mit   ret   渲染   efs   

1.子组件的is使用

2.子组件的data函数

3.ref的使用

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
    .activated {color: red}
  </style>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    <table>
      <tbody>
        <!-- h5规定tbody里面放tr>td,页面渲染时看起是一样的,但是dom节点渲染不一样-->
        <!-- ul>li, select>option -->
        <row></row>
        <row></row>
        <row></row>
        <!-- is代表是哪个组件  -->
        <td is="row"></td>
        <td is="row"></td>
      </tbody>
    </table>
    <ul>
      <li is="liRow"></li>
      <li is="liRow"></li>
      <li is="liRow"></li>
    </ul>

    <h3>ref获取dom对象</h3>
    <div ref="getDOM" @click="handleClick"> click me</div>
    
    <h3>组件使用ref,获取的是子组件的引用</h3>
    <counter ref="one" @change="handleChange"></counter>
    <counter ref="two" @change="handleChange"></counter>
    <div>{{total}}</div>

  </div>
</body>
<script type="text/javascript">
  Vue.component(row, {
    //子组件定义数据的时候,必须是一个函数
    //让每个子组件都有独立的数据存储
    data () {
      return {
        content: this is a row
      }
    },
    template:<tr><td>{{content}}</td></tr>
  })
  Vue.component(liRow, {
    template:<li>this is a li</li>
  })

  Vue.component(counter, {
    data () {
      return {
        count: 0
      }
    },
    template: <div @click="handleClick">{{count}}</div>,
    methods: {
      handleClick () {
        this.count++
        this.$emit(change)
      }
    }
  })

  let vm = new Vue({
    el: #app,
    data: {
      total: 0
    },
    methods: {
      handleClick () {
        //$refs对象保存的是vue实例中所有的dom引用
        console.log(this.$refs.getDOM.innerHTML = hei jack)
      },
      handleChange () {
        // ref用在组件上时,保存的时组件的引用
        console.log(this.$refs.one)
        this.total = this.$refs.one.count + this.$refs.two.count
      }
    }
  })
</script>
</html>

 

vue_组件细节点

标签:template   javascrip   counter   count   get   mit   ret   渲染   efs   

原文地址:https://www.cnblogs.com/JunLan/p/12420112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!