Rumah  >  Artikel  >  hujung hadapan web  >  uniapp menambah paparan secara dinamik

uniapp menambah paparan secara dinamik

王林
王林asal
2023-05-26 09:23:06550semak imbas

Dalam beberapa tahun kebelakangan ini, dengan populariti aplikasi mudah alih, pembangun mempunyai permintaan yang semakin meningkat untuk membina aplikasi mudah alih dengan cepat. Dalam pembangunan aplikasi mudah alih, UniApp, sebagai rangka kerja pembangunan mudah alih merentas platform, digemari oleh semakin ramai pembangun. Salah satu kelebihan UniApp ialah ia mempunyai pengalaman pembangunan yang baik dan perpustakaan komponen yang kaya Ia bukan sahaja boleh membina halaman asas dengan cepat, tetapi juga melaksanakan logik interaktif yang kompleks.

Artikel ini akan memperkenalkan cara UniApp boleh meningkatkan dan menambah paparan secara dinamik untuk memenuhi keperluan pelaksanaan logik interaksi yang kompleks.

Pertama sekali, kita perlu menjelaskan konsep asas UniApp. Dalam UniApp, halaman terdiri daripada berbilang komponen Setiap komponen boleh mewakili paparan atau tingkah laku Komponen yang berbeza boleh bersarang dan digabungkan antara satu sama lain untuk membentuk pelbagai halaman yang kompleks.

Seterusnya, mari kita lihat cara menambah komponen secara dinamik. Mari kita ambil keperluan mudah sebagai contoh: pada halaman, klik butang untuk menambah kotak teks secara dinamik.

Pertama, tentukan komponen butang pada halaman Apabila butang diklik, tambahkan kotak teks. Kod khusus adalah seperti berikut:

<template>
  <view>
    <button @tap="addInput">添加文本框</button>
    <view class="input-container">
      <!-- 这里是我们要添加的文本框 -->
    </view>
  </view>
</template>

<script>
export default {
  methods: {
    addInput() {
      // 动态添加文本框的操作
    }
  }
}
</script>

Dalam kaedah addInput acara klik butang, kita perlu menambah komponen kotak teks secara dinamik. UniApp menyediakan kaedah komponen dinamik, yang boleh dilaksanakan melalui komponen komponen. Kod khusus adalah seperti berikut:

<template>
  <view>
    <button @tap="addInput">添加文本框</button>
    <view class="input-container">
      <!-- 这里是我们要添加的文本框 -->
      <component :is="inputComponent"></component>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      inputComponent: 'input'
      // 这里我们先设置为原生的input组件,后面会解释如何动态改变组件类型
    }
  },
  methods: {
    addInput() {
      // 动态添加文本框的操作
      this.inputComponent = 'input' // 这里我们先设置为原生的input组件
    }
  }
}
</script>

Dalam kod di atas, kami mengikat komponen secara dinamik melalui inputComponent dan memberitahu komponen jenis komponen yang akan diberikan melalui arahan :is.

Kini, kita perlu melaksanakan operasi menambah kotak teks secara dinamik. Kod khusus adalah seperti berikut:

<template>
  <view>
    <button @tap="addInput">添加文本框</button>
    <view class="input-container">
      <!-- 这里是我们要添加的文本框 -->
      <component :is="inputComponent"></component>
    </view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      inputComponent: 'input'
      // 这里我们先设置为原生的input组件,后面会解释如何动态改变组件类型
    }
  },
  methods: {
    addInput() {
      // 动态添加文本框的操作
      this.inputComponent = 'input' // 这里我们先设置为原生的input组件
      
      // 使用uni.$createComponent创建一个新的组件实例
      const inputInstance = uni.$createComponent({
        // 组件的选择器
        selector: 'dynamic-input',
        // 组件的模板
        template: '<input v-model="value" placeholder="请输入内容"></input>',
        // 组件的数据
        data() {
          return {
            value: ''
          }
        }
      })
      
      // 使用this.$refs获取到容器内的dom对象
      const containerDom = this.$refs.inputContainer.$el
      
      // 使用uni.$app.$mount将组件实例挂载到dom容器中
      inputInstance.$mount(containerDom)
    }
  }
}
</script>

Dalam kod di atas, mula-mula kita menggunakan kaedah uni.$createComponent untuk mencipta contoh komponen dinamik baharu, kemudian gunakan ini.$refs untuk mendapatkan objek DOM bekas , dan kemudian gunakan uni.$app Kaedah .$mount memasang tika komponen ke dalam bekas DOM.

Kini, kita boleh menjalankan kod, klik butang dan berjaya menambah kotak teks secara dinamik. Walau bagaimanapun, jika kita ingin menukar jenis komponen secara dinamik, seperti menambah butang radio, kita perlu menukar nilai inputComponent secara dinamik dan kemudian melaksanakan semula operasi menambah komponen secara dinamik.

Artikel ini memperkenalkan cara meningkatkan dan menambah paparan secara dinamik dalam UniApp dengan mencipta tika komponen secara dinamik dan cara menukar jenis komponen secara dinamik. Saya harap artikel ini boleh membantu pembangun mudah alih.

Atas ialah kandungan terperinci uniapp menambah paparan secara dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn