vue组件传参:头部公共右侧图标或文字

1、给移动端头部的标题和右侧图标传参 

2、先写头部组件:TopNavbar.vue

<van-nav-bar :title="topNavbarTitle"  left-arrow>
  <template #right>
    <div class="nav-right">
      <div class="nav-btn">
        <van-icon :name="rightIcon" /><!-改变右侧字体图标:先建参数rightIcon  -->
        <span v-if="edit" @click="edit">{{txt}}</span>  <!编辑:v-if="edit"有就显示,没有就不显示 -->
      </div>
    </div>
  </template>
</van-nav-bar>

export default {
  props: {
    topNavbarTitle: {
      type: String
    },
      rightIcon: {  //tangyk  图标传参
          type: String
      },
    edit: {       //编辑事件函数
        type: Function
    },
    txt: {   //编辑文字传参
        type: String
    }
  },

  data() {
    return {};
  }
};

 

3、页面引用组件,并传参给标题和图标

//订单中心
<TopNavbar :topNavbarTitle="NavbarTitle" :rightIcon="rightIcon"></TopNavbar> //图标展示

//购物车
<TopNavbar :topNavbarTitle="NavbarTitle" :edit="editClick" :txt="txt"></TopNavbar>  //编辑事件和文字传参

<script>
    import TopNavbar from "@/components/TopNavbar.vue";  //导入组件TopNavbar
    export default {
        components: {Coupon,TopNavbar},
        data() {
    
            return {
                isShow: false,   //编辑弹框改成false,则不显示
                editClick:this.click, //绑定下面“编辑”的点击事件
                //rightIcon:"chat-o", //图标传参
                txt:"编辑",  //文字传参
                actions: [
                ],
    
    
            };
        },
        methods: {
            click() {  //编辑事件
                this.isShow = !this.isShow;
            }
        },
    };

</script>

4、结果预览如下图 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
person = personList.get(position); AlertDialog.Builder builder = new AlertDialog.Builder(PersonActivity.this); builder.setTitle("Delete Person").setMessage("在 Vue 中,父组件向子组件传递数据可以通过 props 实现。具体过程如下: 1.Are you sure you want to delete this person?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public 在父组件中定义要传递的数据,例如: ``` <template> <div> <child-component :message void onClick(DialogInterface dialog, int which) { SQLiteDatabase db = dbHelper.getWritableDatabase(); db.delete(DBOpenHelper.TABLE_STUDENT, DBOpen="msg"></child-component> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; export default { componentsHelper.COLUMN_STUDENT_ID + " = ?", new String[]{String.valueOf(person.getId())}); personList.remove(person); person: { ChildComponent }, data() { return { msg: 'Hello, child component!' } } } Adapter.notifyDataSetChanged(); } }).setNegativeButton("No", null).show(); return true; } }); } private</script> ``` 2. 在子组件中定义 props,例如: ``` <template> <div> <p void loadPersonList() { SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query(DBOpenHelper.TABLE_STUDENT, null>{{ message }}</p> </div> </template> <script> export default { props: { message: String } } , null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex(DBOpenHelper</script> ``` 这样,父组件中的 msg 数据就会通过 props 传递给子组件的 message 属性.COLUMN_STUDENT_ID)); String name = cursor.getString(cursor.getColumnIndex(DBOpenHelper.COLUMN_STUDENT_NAME)); String myclass = cursor.getString(cursor.getColumnIndex(DBOpenHelper.COLUMN_STUDENT_CLASS)); Person person = new Person(id, name, myclass); personList.add(person); ,子组件中就可以使用该属性进行渲染。注意,子组件中的 props 必须要声明类型,否则会收到一个警告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值