2018-08-12-Vue 구성 요소

4837 단어

어셈블리를 생성하는 3가지 방법


첫 번째:

  • Vue.extend () 함수는 구성 요소의 구조기를 되돌려줍니다. 그 안에 인자가 포함되어 있고, 인자는 대상이며, 대상은 일부 설정 항목입니다.
  • Vue.component () 함수는 Vue를 사용합니다.extend () 되돌아오는 구조기가 구성 요소를 만드는 실례입니다. 두 개의 인자가 있습니다.매개 변수1: 구성 요소 이름, 매개 변수2: 구성 요소 구조기
  • 참고:
  • 템플릿template에는 루트 노드가 하나만 있을 수 있음
  • 구성된 이름이 낙타봉으로 명명되면 사용할 때'-'를 붙여야 한다.예를 들어 구성 요소 이름 indexA-->index-a;


  • 두 번째:

  • Vue.component('indexB', {템플릿})
  • 세 번째:

  • 템플릿을 작성하여 Vue 관리 범위를 벗어나 템플릿을 정의합니다
  • .

    요약:

  • 먼저 템플릿을 만들고 어셈블리를 생성
  • 어셈블리에서 명령을 사용합니다.

  • Vue에서.component () 안에는template 템플릿이 있고 데이터 () 함수가 있으며 methods () 방법이 있습니다
  • 주의: 데이터 ()는 함수여야 합니다.속성 정의를 사용할 수 없습니다.함수 안에return에서 대상 하나 나가기
  • 부모 구성 요소가 서브 구성 요소에 값을 전달하는 방법

  • 먼저 모 피쳐 및 서브어셈블리 생성
  • 부모 구성 요소의 템플릿에 있는son, 서브 구성 요소 탭에 귀속: 속성 = 부모 구성 요소가 전달해야 하는 데이터;
  • 서브 구성 요소의son{}에서props를 사용하여 부모 구성 요소가 전달한 데이터를 수신한다.
  • props 뒤에 하나의 수조가 있고 수조에는 하나의 문자열이 있다. 이 문자열들은 속성으로 사용할 수 있다. 즉props: ['속성명']
  • 코드는 다음과 같습니다.
  • Vue.component('father', {template:'...', 데이터() {
      return{
          mySonName:' '
      }
    
    },//서브어셈블리components: {
      son:{
          props:['myName'],
          template:'...{{myName}}'
      }
    
    }}})

  • 서브어셈블리가 부모 어셈블리에 값을 전달하는 방법

  • 먼저 부모 구성 요소와 서브 구성 요소를 생성합니다.
  • 서브어셈블리 methods 방법에서this.$사용emit() 방법,
  • 이 방법은 두 가지 파라미터가 있다.매개 변수1: 부모 구성 요소와 이벤트 이름을 교환해야 하며, 매개 변수2: 전달할 데이터;

  • 부모 구성 요소 템플릿의son 탭에서 방법명을 사용하여 전달합니다. 즉, @tellFatherMyname = "getMySonName"
  • 부모 구성 요소의methods 방법에 데이터 파라미터를 전송하고 이 데이터=하위 구성 요소가 전달한 데이터를 mySonName=데이터로 전송한다.
  • 코드는 다음과 같습니다.

  •   Vue.component('father',{
          template:'

    {{mySonName}}

    ', data(){ return { mySonName:'???' } }, methods:{ getMySonName(data){ console.log(data); this.mySonName = data; } }, components: { son:{ data(){ return { myName :' ' } }, template:'', // methods this.$emit() ; //$emit() 2 ; 1: , 2: ; :this.name methods:{ emitMyname(){ this.$emit('tellFatherMyname',this.myName) } } } } }) var vm = new Vue({ el:'#app', data:{ } })


  • 형제 어셈블리의 생성 및 전송 값:


    • 형제 구성을 만들 때 부모 구성 요소를 만들고 서브 구성 요소에서son 구성 요소와 daughter 구성 요소를 만듭니다.

    • 다음은son 모듈과daughter 모듈 사이의 전송값입니다.

    • dau --> son 전송치

    • dau에서 이벤트 버스를 통해 이벤트 이름과 전달할 데이터를 먼저 발사하기;이벤트 bus.$emit (이벤트 이름, 데이터)


      • 이벤트 버스:
        var eventbus = new Vue();

    • son에 갈고리 함수를 먼저 쓰고 이벤트bus.$('사건명칭', 데이터=>{}) 방법으로 형제 노드에서 발사된 사건을 감청하고 수신

    • $on()에는 두 개의 파라미터가 있는데 파라미터1: 이벤트 이름;매개 변수2: 함수, 함수의 기본값은 전달된 데이터

    • 코드는 다음과 같다:




      •   //先创建一个vue空实例,作为事件总线
          var eventbus = new Vue();
          
          Vue.component('father',{
          
              //组件显示的模板
              template:`
        `, components: { son:{ data(){ return { mySisterName:'???' } }, //组件显示的模板 template:'

        我的妹妹告诉我她叫{{mySisterName}}

        ', //采用钩子函数 //在钩子函数中通过eventbus.$on('同一个事件名称',data)来接收传递过来的数据 mounted(){ eventbus.$on('tellBroMyName',data=>{ this.mySisterName = data; }) } }, daughter:{ data(){ return { myName:'兰兰' } }, template:'', methods:{ //只要点击按钮,就将事件和数据一起传递过去 emitMyName(){ eventbus.$emit('tellBroMyName',this.myName) } } } } }) var vm = new Vue({ el:'#app', data:{ } })




    제이슨이 뭐예요?어떻게 올 거예요?
    Apple Watch 어플리케이션의 Series 4 대응

    좋은 웹페이지 즐겨찾기