지식 포인트: Components, animation, 현재 클릭한 요소의 색인 및 콘텐츠 가져오기
WeChat 애플릿에는 선택 드롭다운 옵션 상자가 없으므로 사용자 정의만 가능합니다. 사용자 정의하려면 템플릿을 선택하거나 구성 요소를 선택하여 만들 수 있습니다.
이번에는 컴포넌트 소개와 데이터만 추가하면 되고, 다른 부분은 걱정하지 않고 여러 곳에 재사용할 수 있도록 컴포넌트를 선택했습니다.
1단계: 구성 요소에 필요한 파일 만들기
모든 공유 콘텐츠를 페이지 파일과 동일한 수준에 두는 것을 좋아하므로 다음과 같은 디렉터리 구조를 갖습니다.
먼저 만들기 위의 내 구성 요소
와 같은 사용자 정의 이름을 가진 폴더를 만든 다음 선택 폴더를 만든 다음 폴더를 마우스 오른쪽 버튼으로 클릭하고 아래 구성 요소를 만듭니다. 그런 다음 생성해야 할 이름을 입력합니다. 여기서는 편의상 select라는 이름을 사용했습니다. 그러면 js, json, wxml, wxss라는 4개의 파일이 자동으로 생성됩니다.
2단계: 구성 요소 구성 시작
참고: 첫 번째 단계를 통해 생성한 경우 두 번째 단계를 직접 건너뛸 수 있습니다.
- 첫 번째 단계에서 생성된 컴포넌트 폴더가 자동으로 구성되었습니다. 다만
컴포넌트 소개 시 컴포넌트가 소개되는 페이지의 json 파일에 컴포넌트의 이름과 위치를 구성해 주세요.
- 구성 요소의 js, json, wxml 및 wxss 파일을 수동으로 생성하는 경우 json 파일을
"comComponent"로 채워야 합니다. true는 사용자 정의 구성 요소를 의미합니다. 선언. js 파일도 다음 형식으로 작성해야 합니다.
Component({ properties: { // 这里定义了innerText属性,属性值可以在组件使用时指定 innerText: { type: String, value: 'default value', } }, data: { // 这里是一些组件内部数据 someData: {} }, methods: { // 这里是一个自定义方法 customMethod: function(){} } })
3단계: 구성 요소 스타일과 js를 사용자 정의합니다.
참고: 여기서 구성 요소가 있는 페이지를 app.json의 pages에 먼저 넣을 수 있습니다. 그러면 구성 요소 페이지에 my와 같은 코드를 작성할 수 있습니다. 디렉토리 위 구조: "Componet/select/select"로 작성해야 하며, 뒤에 다른 페이지가 와야 합니다. 이것이 훨씬 더 편리합니다.
1.Component wxml<view>
<view>
<view>{{nowText}}</view>
<image></image>
</view>
<view>
<view>{{item.text}}</view>
</view></view>
- (1)
animation="{{animationData}}"아래쪽 화살표
- (2 )
data-index="{{index}}" 현재 요소를 클릭했을 때의 인덱스입니다
- (3) selectToggle은 드롭 숨김 표시를 흉내내는 이벤트입니다. -다운 옵션 상자.
- (4) setText는 하위 항목을 선택한 후 내용을 설정하는 드롭다운 옵션 상자를 모방하는 이벤트입니다.
- (5) selectShow는 옵션 옵션 표시 여부를 나타냅니다.
2. 컴포넌트의 wxss
.com-selectBox{ width: 200px; }.com-sContent{ border: 1px solid #e2e2e2; background: white; font-size: 16px; position: relative; height: 30px; line-height: 30px; }.com-sImg{ position: absolute; right: 10px; top: 11px; width: 16px; height: 9px; transition: all .3s ease; }.com-sTxt{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding:0 20px 0 6px; font-size: 14px; }.com-sList{ background: white; width: inherit; position: absolute; border: 1px solid #e2e2e2; border-top: none; box-sizing: border-box; z-index: 3; max-height: 120px; overflow: auto; }.com-sItem{ height: 30px; line-height: 30px; border-top: 1px solid #e2e2e2; padding: 0 6px; text-align: left; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; }.com-sItem:first-child{ border-top: none; }
3.3 컴포넌트의 js. (1) 구성요소 properties
속성은 데이터로 사용할 수 있는 것으로 이해됩니다. 즉,- 은 속성 유형을 나타내고
value
는 속성의 초기 값을 나타내고,observer
는 속성 값이 변경될 때의 응답 함수를 나타냅니다.type
表示属性类型、value
表示属性初始值、observer
表示属性值被更改时的响应函数。type 是必填的,其它的可选。如果只有 type,可以写成:属性名:type类型。 -
(2) 组件的 data 和普通页面的data一样,是组件的内部数据,和
type🎜만 있는 경우 🎜속성 이름: type type🎜과 같이 쓸 수 있습니다. 🎜🎜🎜🎜 (2) 컴포넌트의 데이터는 일반 페이지의 데이터와 동일하며, 🎜properties
type은 필수이고 그 외는 선택사항입니다.속성
과 함께 컴포넌트의 템플릿 렌더링에 사용됩니다. >🎜. 🎜 (3) 组件的 method 是专门用于 事件响应函数 和 任意的自定义方法。在这里面获取数据有两种方法:一种是获取data里的数据: this.data.属性名;一种是获取 properties 中的属性值: this.properties.属性名
(4) 创建animation动画,作用在通过 true 和 false 切换显示状态的内容上没有过渡、没有过渡、没有过渡。
type
第四步:引入组件,传入组件所需数据
1. 引入前,需要在引入组件的页面的json文件中配置,比如我要在 index.wxml 中引入,那么在 index.json 中我就需要配置:
"usingComponents": { "Select": "/Componet/select/select"}
(1) Select 是你定义的组件的名称,后面的是组件所在的位置。 / 单斜杠表示根目录,是绝对路径。
(2) 如果出现下面这种说没找到路径的,一定是自己填写的路径不对,认真查找。
2. 配置好后,就可以引入组件。
<select></select>
(1) prop-array 是我自定义的属性名,这个是和组件所在的 js 中properties中的属性是对应的。在 properties
定义的属性中,属性名采用驼峰写法(例如:propArray);在引入组件的 wxml
中,指定属性值时则对应使用连字符写法(例如:prop-array="..."
)。
3. 最后就是传入数据了。在引入组件的js的data中,添加:
selectArray: [{ "id": "10", "text": "会计类"}, { "id": "21", "text": "工程类"}]
最终结果:
如果引入两个相同的组件,传入的数据也相同:
<select></select><select></select>
这样的方式组件并不会相互影响,都是独立的。
对了,组件样式的规则可以查看官方的规则
第五步:获取点击的内容,即组件间的通信
效果有了,最关键的是获取选中的内容。这个怎么实现呢,这时候需要组建间通信与事件了。
1. 对组件的事件进行监听:
<select></select>
(1) 这里myget是自定义的子组件需要触发的事件名,getDate是引入组件的页面需要获取传过来的数据的自定义的事件名。
2. 子组件触发事件
因为这里的select组件是点击下拉列表的内容才进行内容的更新,所以这里只需要在下拉列表里添加一个点击事件,而原来已经设置了setText事件。所以只需要在setText函数里面写触发事件就行了。
在setText函数的内容里加上:
var nowDate={ id:nowIdx, text:nowText }this.triggerEvent('myget', nowDate)
(1) 这里的 myget 和 bind:myget ,名称一定要对应。
(2) nowDate是需要传回的数据,不一定要弄成对象,想传什么传什么,我这里只是演示而已。我试了一下也可以传函数。。。
3. 引入组件的页面的js
添加引入组件时,自定义的函数:
getDate:function(e){ console.log(e.detail) }
e的内容为:
传过来的值就在detail里面。
到此,一个完整的select组件就完成了。
更新:
如果要select组件默认显示传入的第一个数据,做法是:
(1) 在select组件的wxml页面,在class为com-sTxt的view标签中,原来的 {{ nowText }} 改为 {{ nowText==' ' ? propArray[0].text : nowText }}。
(2) 然后在 select 组件 js文件 中原来nowText的值修改为 ‘ ’ 空。
(3) 这样的话就表示如果最初nowText为空,就显示传入数据的第一个值,否则就是选中的值
推荐教程:《微信小程序》
위 내용은 WeChat 애플릿의 사용자 정의 선택 드롭다운 옵션 상자 구성 요소의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

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

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
