Vue组件自定义方法,传参

本文详细介绍了Vue.js中列表渲染的实现方式,包括使用v-for指令进行数据绑定,v-bind指令绑定动态属性,以及如何通过v-on指令处理用户交互事件。同时,探讨了条件渲染、阻止事件冒泡等高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
  <div id="app">
    <ul>
      <li v-for="(item,index) in list" :key="index" >
           {{item}}
      </li>
    </ul>
    <!--
      V-bind绑定标签属性, 简写:
      使用v-bind就是变量, 不使用就是常亮
      :class="[classA,classB]"
      data:{
        classA:'hello',
        classB:'world'
      }
    -->
    <!-- <componentA :dataA="dataA" ></componentA> -->
    <a :href="link" :title='HELLO' class="2"  :class="classa"  :style="linkCss">to baidu</a>
    <button v-on:click="addItem">addItem</button>
    <a v-if="isPartA">A</a>
    <a v-else>no a</a>
    <a v-show="!isPartA">B</a>
    <!--stop阻止冒泡事件-->
    <button v-on:click.stop="toggle">切换</button>
    <!---->
    <input @keydown.13="onKeydown">

     <comA @my-event="onComaMyEvent"></comA>
  </div>
</template>

<script>
//如果要使用vue全局.
import Vue from 'vue'
import comA from './components/a'
export default {
  //组件
  components:{
    comA:comA
  },
  data() {
    return {
      isPartA:true,
      link:'http://www.baidu.com',
      HELLO: "<span>world</span>",
      num: 1,
      linkCss:{'color':'red'},
      classa:'AAAA',
      dataA:2,
      status: true,
      list: [
        {
          name: "apple",
          price: 34
        },
        {
          name: "ban",
          price: 34
        }
      ],
      objList:{
        name:'apple',
        price:34,
        color:'red',
        weight:14
      }
    }
  },
  //绑定方法
  methods:{
     addItem (){
       console.log(this.list);
       //有的方法不能实现双向绑定怎么办
        Vue.set(this.list,1,{
          name: "ban1",
          price: 341
        });

       /*
       this.list.push({
          name: "ban1",
          price: 341
       })
       */
     } ,
     toggle(){
       this.isPartA=! this.isPartA;
     },
     onKeydown(){
       console.log('on key down');
     },
     onComaMyEvent(parmformA){
       console.log('onComaMyEvent'+parmformA);
     }
  }
};
</script>

<style>
</style>






b页面
<template>
  <div>
      {{HELLO}}
      <button @click="emitMyEvent">emit</button>
  </div>
  
</template>

<script>
export default {
  data() {
    return {
      HELLO: "我是componentA",
    }
  },
  methods:{
    emitMyEvent(){
      this.$emit('my-event',this.HELLO );
    }
  }
};
</script>

<style>
</style>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值