웹 프론트엔드 uni-app uniapp은 동적으로 뷰를 추가합니다.

uniapp은 동적으로 뷰를 추가합니다.

May 26, 2023 am 09:23 AM

최근 몇 년간 모바일 애플리케이션이 인기를 끌면서 개발자들은 모바일 애플리케이션을 빠르게 구축하려는 요구가 증가하고 있습니다. 모바일 애플리케이션 개발에서 크로스 플랫폼 모바일 개발 프레임워크인 UniApp을 점점 더 많은 개발자가 선호하고 있습니다. UniApp의 장점 중 하나는 좋은 개발 경험과 풍부한 구성 요소 라이브러리를 갖추고 있다는 것입니다. 기본 페이지를 빠르게 구축할 수 있을 뿐만 아니라 복잡한 상호 작용 논리도 구현할 수 있습니다.

이 기사에서는 UniApp이 복잡한 상호 작용 논리의 구현 요구 사항을 충족하기 위해 뷰를 동적으로 늘리고 추가하는 방법을 소개합니다.

먼저 UniApp의 기본 개념을 명확히 할 필요가 있습니다. UniApp에서 페이지는 여러 구성 요소로 구성됩니다. 각 구성 요소는 보기나 동작을 나타낼 수 있으며, 다양한 구성 요소가 서로 중첩되고 결합되어 다양한 복잡한 페이지를 형성할 수 있습니다.

다음으로 컴포넌트를 동적으로 추가하는 방법을 살펴보겠습니다. 간단한 요구 사항을 예로 들어 보겠습니다. 페이지에서 버튼을 클릭하면 텍스트 상자가 동적으로 추가됩니다.

먼저 페이지에서 버튼 구성요소를 정의합니다. 버튼을 클릭하면 텍스트 상자를 추가합니다. 구체적인 코드는 다음과 같습니다.

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

<script>
export default {
  methods: {
    addInput() {
      // 动态添加文本框的操作
    }
  }
}
</script>
로그인 후 복사

버튼 클릭 이벤트의 addInput 메서드에서 텍스트 상자 구성 요소를 동적으로 추가해야 합니다. UniApp은 컴포넌트 컴포넌트를 통해 구현할 수 있는 동적 컴포넌트 메소드를 제공합니다. 구체적인 코드는 다음과 같습니다.

<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>
로그인 후 복사

위 코드에서는 inputComponent를 통해 컴포넌트를 동적으로 바인딩하고, :is 지시어를 통해 렌더링할 컴포넌트 유형을 컴포넌트에 알려줍니다.

이제 텍스트 상자를 동적으로 추가하는 작업을 구현해야 합니다. 구체적인 코드는 다음과 같습니다.

<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>
로그인 후 복사

위 코드에서는 먼저 uni.$createComponent 메소드를 사용하여 새로운 동적 구성요소 인스턴스를 생성한 다음 this.$refs를 사용하여 컨테이너의 DOM 개체를 얻은 다음 다음을 사용합니다. uni.$app.$mount 메소드 구성 요소 인스턴스를 dom 컨테이너에 마운트합니다.

이제 코드를 실행하고 버튼을 클릭하여 텍스트 상자를 동적으로 추가할 수 있습니다. 그러나 라디오 버튼 추가와 같이 컴포넌트 유형을 동적으로 변경하려면 inputComponent의 값을 동적으로 변경한 다음 컴포넌트를 동적으로 추가하는 작업을 다시 실행해야 합니다.

본 글에서는 UniApp에서 동적으로 컴포넌트 인스턴스를 생성하여 뷰를 동적으로 늘리고 추가하는 방법과 컴포넌트 유형을 동적으로 변경하는 방법을 소개합니다. 이 글이 모바일 개발자들에게 도움이 되기를 바랍니다.

위 내용은 uniapp은 동적으로 뷰를 추가합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

UNI-APP에서 로컬 스토리지를 어떻게 처리합니까? UNI-APP에서 로컬 스토리지를 어떻게 처리합니까? Mar 11, 2025 pm 07:12 PM

이 기사는 UNI-APP의 로컬 스토리지 API (uni.setStoragesYnc (), uni.getStoragesYnc () 및 해당 비동기 상대방)에 대해 자세히 설명하고 설명 키 사용, 데이터 크기 제한 및 JSON 구문 분석 처리와 같은 모범 사례를 강조합니다. 그것은 lo를 강조합니다

Vuex 또는 Pinia를 사용하여 UNI-APP에서 상태를 어떻게 관리합니까? Vuex 또는 Pinia를 사용하여 UNI-APP에서 상태를 어떻게 관리합니까? Mar 11, 2025 pm 07:08 PM

이 기사는 UNI-APP의 국가 관리를 위해 Vuex와 Pinia를 비교합니다. Pinia의 단순성과 Vuex의 구조를 강조하는 기능, 구현 및 모범 사례를 자세히 설명합니다. 선택은 Pinia Suita와 함께 프로젝트 복잡성에 달려 있습니다

UNI-APP에서 API 요청 및 데이터를 처리하려면 어떻게해야합니까? UNI-APP에서 API 요청 및 데이터를 처리하려면 어떻게해야합니까? Mar 11, 2025 pm 07:09 PM

이 기사는 UNI.Request 또는 Axios를 사용하여 UNI-APP 내에서 API 요청을 작성하고 보호합니다. JSON 응답 처리, 최상의 보안 관행 (HTTPS, 인증, 입력 검증), 문제 해결 장애 (네트워크 문제, CORS, S

Uni-App의 지리적 위치 API를 어떻게 사용합니까? Uni-App의 지리적 위치 API를 어떻게 사용합니까? Mar 11, 2025 pm 07:14 PM

이 기사는 Uni.getLocation ()에 중점을 둔 UNI-APP의 지리 위치 API에 대해 자세히 설명합니다. 잘못된 좌표 시스템 (GCJ02 vs. WGS84) 및 권한 문제와 같은 일반적인 함정을 다룹니다. 평균 판독 값 및 핸들링을 통해 위치 정확도 향상

Uni-App의 소셜 공유 API를 어떻게 사용합니까? Uni-App의 소셜 공유 API를 어떻게 사용합니까? Mar 13, 2025 pm 06:30 PM

이 기사에는 Uni.share API를 사용하여 소셜 공유를 UNI-APP 프로젝트에 통합하는 방법에 대해 자세히 설명합니다. Share API, WeChat 및 Weibo와 같은 플랫폼에서 설정, 구성 및 테스트를 다룹니다.

자동 구성 요소 등록에 Uni-App의 EasyCom 기능을 어떻게 사용합니까? 자동 구성 요소 등록에 Uni-App의 EasyCom 기능을 어떻게 사용합니까? Mar 11, 2025 pm 07:11 PM

이 기사에서는 Uni-App의 Easycom 기능, 구성 요소 등록 자동화를 설명합니다. Autoscan 및 사용자 정의 구성 요소 매핑을 포함한 구성에 대해 자세히 설명하고, 보일러 플레이트 감소, 속도 향상 및 가독성 향상과 같은 이점을 강조 표시합니다.

Uni-App과 함께 전처리기 (Sass, Less)를 어떻게 사용합니까? Uni-App과 함께 전처리기 (Sass, Less)를 어떻게 사용합니까? Mar 18, 2025 pm 12:20 PM

기사는 UNI-APP에서 SASS 및 적은 전처리기를 사용하여 설정, 혜택 및 이중 사용을 자세히 설명합니다. 주요 초점은 구성과 장점에 있습니다. [159 자]

HTTP 요청을 위해 UNI-APP의 UNI.Request API를 어떻게 사용합니까? HTTP 요청을 위해 UNI-APP의 UNI.Request API를 어떻게 사용합니까? Mar 11, 2025 pm 07:13 PM

이 기사는 HTTP 요청을 위해 UNI-APP의 UNI.Request API에 대해 자세히 설명합니다. 기본 사용법, 고급 옵션 (메소드, 헤더, 데이터 유형), 강력한 오류 처리 기술 (실패 콜백, 상태 코드 점검) 및 Authenticat과의 통합을 다룹니다.

See all articles