백엔드 개발 PHP 튜토리얼 Yii_php 스킬의 render와 renderPartial의 차이점

Yii_php 스킬의 render와 renderPartial의 차이점

May 16, 2016 pm 08:36 PM
render

다음은 Xinyi Network Company에서 프로젝트를 개발하면서 얻은 경험 중 일부입니다
페이지 출력을 렌더링할 때.

1.render는 상위 템플릿의 콘텐츠를 출력하고 렌더링된 콘텐츠를 상위 템플릿에 삽입합니다. |
2.renderPartial은 상위 템플릿의 내용을 출력하지 않습니다. 이 렌더링의 일부 내용만 출력됩니다.

동시에 중요한 차이점이 있습니다.

processOutput($output) 함수는 기본적으로

render 함수 내에서 실행되며, CClientScript의
에 CTreeView와 같은 구성 요소를 등록합니다. 출력 렌더링에 필요한 스크립트입니다.

그리고 renderPartial()은 기본적으로 클라이언트 스크립트를 자동으로 렌더링하고 출력하지 않습니다. 출력하기 전에 매개변수를 지정해야 합니다.
renderPartial($view,$data=null,$return=false,$processOutput=false)
processOutput을 true로 지정하면 됩니다.

예를 들어 CTreeView를 부분적으로 출력하려면 renderPartial을 사용하여 렌더링합니다. 기본 processOutput=false를 따르면 클라이언트 스크립트 없이 콘텐츠가 출력됩니다.
출력 내용은 일반 ul 목록입니다. 나무 모양의 접는 효과는 없습니다. processOutput=true를 적극적으로 설정하면 CTreeView에 필요한 모든 클라이언트 스크립트가 목록 맨 앞에 정상적으로 출력됩니다.

다음은 사용되는 여러 관련 기능을 소개합니다.

render, renderPartial은 더 이상 도입되지 않습니다
프로세스출력()

<&#63;php
publicfunction render($view,$data=null,$return=false)
{
  if($this->beforeRender($view))
  {
    $output=$this->renderPartial($view,$data,true);
    if(($layoutFile=$this->getLayoutFile($this->layout))!==false)
      $output=$this->renderFile($layoutFile,array('content'=>$output),true);
    $this->afterRender($view,$output);
    $output=$this->processOutput($output);
    if($return)
      return $output;
    else
      echo $output;
  }
}
publicfunction renderPartial($view,$data=null,$return=false,$processOutput=false)
{
  if(($viewFile=$this->getViewFile($view))!==false)
  {
    $output=$this->renderFile($viewFile,$data,true);
    if($processOutput)
      $output=$this->processOutput($output);
    if($return)
      return $output;
    else
      echo $output;
  }
  else
    thrownewCException(Yii::t('yii','{controller} cannot find the requested view "{view}".',
      array('{controller}'=>get_class($this),'{view}'=>$view)));
}
publicfunction processOutput($output)
{
  Yii::app()->getClientScript()->render($output);
  // if using page caching, we should delay dynamic output replacement
  if($this->_dynamicOutput!==null&& $this->isCachingStackEmpty())
  {
    $output=$this->processDynamicOutput($output);
    $this->_dynamicOutput=null;
  }
  if($this->_pageStates===null)
    $this->_pageStates=$this->loadPageStates();
  if(!empty($this->_pageStates))
    $this->savePageStates($this->_pageStates,$output);
  return $output;
}
로그인 후 복사

위의 내용은 실제 작업에서 꽤 유용합니다. 예를 들어 큰 구성 요소를 사용하지 않으려면 템플릿에 변수를 직접 입력하거나 템플릿에 여러 변수를 배열로 입력할 수 있습니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

렌더링 기능을 통해 vue3에서 메뉴 드롭다운 상자를 구현하는 방법 렌더링 기능을 통해 vue3에서 메뉴 드롭다운 상자를 구현하는 방법 May 10, 2023 pm 04:28 PM

기술적 해결 방법: 먼저 드롭다운 상자 구성 요소를 작성합니다. 먼저 드롭다운 상자의 내용을 표시하는 구성 요소를 작성합니다. 구성 요소 이름은 다음으로 시작합니다. Select.vue Welfare Mall Saas 플랫폼 활동 사용자 정의 렌더링 구성 요소 이 구성 요소를 웹 페이지에 렌더링하려고 합니다. 작업은 다음과 같아야 합니다. 마우스가 제품 서비스로 이동하면 드롭다운 상자를 렌더링합니다. 구성 요소를 페이지의 적절한 위치에 구성 요소 인스턴스로 배치합니다. vue3에서 Vonde를 렌더링하는 핵심 논리는 import{createVNode,h,render,VNode}from'vue'importcomComponentfrom"./comComponent입니다.

Mpeppe(MPEPE) 코인: 렌더(RNDR) 및 인터넷 컴퓨터(ICP)에서 투자자를 끌어들이는 암호화폐 시장의 새로운 경쟁자 Mpeppe(MPEPE) 코인: 렌더(RNDR) 및 인터넷 컴퓨터(ICP)에서 투자자를 끌어들이는 암호화폐 시장의 새로운 경쟁자 Sep 03, 2024 pm 02:03 PM

암호화폐의 세계는 항상 유동적이며 새로운 토큰은 다음 큰 기회를 찾고 있는 노련한 투자자의 관심을 끌고 있습니다.

렌더링은 렌더링을 의미하나요? 렌더링은 렌더링을 의미하나요? Feb 02, 2023 pm 02:52 PM

렌더(Render)는 렌더링(Rendering)을 의미하며 드로잉 용어이다. 렌더링은 CG의 마지막 과정으로, 최종적으로 이미지를 3D 장면에 맞게 만드는 단계이기도 하다. 일반적으로 Shade를 Shading이라고 하고, Render를 Rendering이라고 합니다.

HMD Slate Tab 5G는 Snapdragon 7s Gen 2, 10.6인치 디스플레이 및 Lumia 디자인을 갖춘 중급형 태블릿으로 유출됩니다. HMD Slate Tab 5G는 Snapdragon 7s Gen 2, 10.6인치 디스플레이 및 Lumia 디자인을 갖춘 중급형 태블릿으로 유출됩니다. Jun 18, 2024 pm 05:46 PM

HMD 글로벌은 스카이라인을 통해 7월 10일 노키아 루미아 920 스타일의 중급형 스마트폰을 공개할 예정이다. 유출자 @smashx_60의 최신 정보에 따르면 루미아 디자인은 곧 태블릿에도 사용될 예정이다. 그것은 c가 될 것이다

렌더코인은 장기간 보유할 가치가 있나요? Render Coin은 투자할 가치가 있나요? 렌더코인은 장기간 보유할 가치가 있나요? Render Coin은 투자할 가치가 있나요? Mar 06, 2024 am 08:31 AM

렌더 코인: 장기 보유할 가치가 있는 투자 기회 렌더 코인은 이더리움 블록체인을 기반으로 한 암호화폐로, 분산 렌더링 네트워크 렌더에서 렌더링 서비스 비용을 지불하도록 설계되었습니다. 목표는 기존 렌더링 솔루션의 높은 비용과 비효율성을 해결하고 아티스트와 창작자에게 저렴하고 편리한 렌더링 옵션을 제공하는 것입니다. 렌더 코인의 장점은 탈중앙화입니다. 렌더 코인은 이더리움 블록체인을 기반으로 하며 중앙 집중식 렌더링 서비스 제공업체의 단일 실패 지점과 높은 비용을 방지하는 탈중앙화 특성을 가지고 있습니다. 높은 효율성: Render Coin은 분산 렌더링 기술을 사용하여 전 세계의 유휴 GPU에 렌더링 작업을 할당하여 렌더링 효율성을 크게 향상시킵니다. 저렴한 비용: 렌더 코인은 중개인을 제거하여 렌더링 비용을 줄입니다.

DTX Exchange(DTX) – 온라인 거래의 새로운 시대 DTX Exchange(DTX) – 온라인 거래의 새로운 시대 Aug 12, 2024 am 12:24 AM

Render(RNDR), Mantle(MNT), Sei(SEI)와 같은 유명 암호화폐를 구매하는 사람들은 이제 DTX Exchange(DTX)에 돈을 넣고 있습니다.

Vue에서 컴포넌트 렌더링을 구현하기 위해 렌더 기능을 사용하기 위한 팁과 모범 사례 Vue에서 컴포넌트 렌더링을 구현하기 위해 렌더 기능을 사용하기 위한 팁과 모범 사례 Jun 25, 2023 am 10:02 AM

널리 사용되는 JavaScript 프레임워크인 Vue.js는 개발자에게 많은 유용한 기능을 제공합니다. 가장 중요한 기능 중 하나는 Vue.js의 구성 요소 시스템입니다. Vue.js를 사용하면 HTML, CSS 및 JavaScript와 같은 기본 구문을 사용하여 구성 요소를 작성할 수 있습니다. 이 구문은 매우 우아하고 간결하지만 어떤 경우에는 충분히 유연하지 않을 수도 있습니다. 이러한 경우 렌더링 기능을 사용하면 구성 요소의 출력을 더 효과적으로 제어할 수 있습니다. 렌더링 기능은 새로운 개념이 아닙니다.

렌더(RENDER)는 주요 저항 수준을 회복한 후 2일 만에 38% 상승 렌더(RENDER)는 주요 저항 수준을 회복한 후 2일 만에 38% 상승 Nov 13, 2024 am 12:26 AM

RENDER는 빠르게 상승 추세를 보였습니다. 알트코인의 모멘텀은 핵심 $5.22 수준이 무너지고 시장 구조가 강세적으로 반전되기 전에 부진했습니다.

See all articles