Vue 구성 요소 및 데이터 전송에 대한 자세한 설명
이 글에서는 Vue 시리즈(3)에 대해 자세히 소개하겠습니다: 컴포넌트 및 데이터 전송, 라우팅, 단일 파일 컴포넌트, vue-cli 스캐폴딩, 도움이 되길 바랍니다.
1. 컴포넌트 컴포넌트
1. 컴포넌트란?
组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码 组件是自定义元素(对象)
2. 구성요소 정의 방법
方式1:先创建组件构造器,然后由组件构造器创建组件 方式2:直接创建组件
<p id="itany"> <hello></hello> <my-world></my-world> </p> <script> /** * 方式1:先创建组件构造器,然后由组件构造器创建组件 */ //1.使用Vue.extend()创建一个组件构造器 var MyComponent=Vue.extend({ template:'<h3>Hello World</h3>' }); //2.使用Vue.component(标签名,组件构造器),根据组件构造器来创建组件 Vue.component('hello',MyComponent); /** * 方式2:直接创建组件(推荐) */ // Vue.component('world',{ Vue.component('my-world',{ template:'<h1>你好,世界</h1>' }); var vm=new Vue({ //这里的vm也是一个组件,称为根组件Root el:'#itany', data:{ msg:'网博' } }); </script>
구성요소 정의
3. 구성요소 분류
分类:全局组件、局部组件
<p id="itany"> <my-hello></my-hello> <my-world></my-world> </p> <script> /** * 全局组件,可以在所有vue实例中使用 */ Vue.component('my-hello',{ template:'<h3>{{name}}</h3>', data:function(){ //在组件中存储数据时,必须以函数形式,函数返回一个对象 return { name:'alice' } } }); /** * 局部组件,只能在当前vue实例中使用 */ var vm=new Vue({ el:'#itany', data:{ name:'tom' }, components:{ //局部组件 'my-world':{ template:'<h3>{{age}}</h3>', data(){ return { age:25 } } } } }); </script>
구성요소 분류
4. 참조 템플릿
将组件内容放到模板<template>中并引用,必须有且只有一个根元素
<p id="itany"> <my-hello></my-hello> <my-hello></my-hello> </p> <template id="wbs"> <!-- <template>必须有且只有一个根元素 --> <p> <h3>{{msg}}</h3> <ul> <li v-for="value in arr">{{value}}</li> </ul> </p> </template> <script> var vm=new Vue({ el:'#itany', components:{ 'my-hello':{ name:'wbs17022', //指定组件的名称,默认为标签名,可以不设置 template:'#wbs', data(){ return { msg:'欢迎来到南京网博', arr:['tom','jack','mike'] } } } } }); </script>
동적 구성요소
2. 구성 요소 간 데이터 전송
1. 상위-하위 구성 요소
구성 요소 내에 상위-하위 구성 요소라고 하는 다른 구성 요소를 정의합니다.
하위 구성 요소는 상위 구성 요소 내에서만 사용할 수 있습니다.
기본적으로 하위 구성 요소는 접근 불가능 상위 구성 요소의 데이터, 각 구성 요소 인스턴스의 범위는 독립적입니다
2. 구성 요소 간 데이터 전송(통신)
2.1 하위 구성 요소는 상위 구성 요소의 데이터에 액세스합니다
<component :is="">组件 多个组件使用同一个挂载点,然后动态的在它们之间切换 <keep-alive>组件
data
、props
、computed
2.2 상위 구성 요소가 하위 구성 요소 데이터에 액세스
<p id="itany"> <button @click="flag='my-hello'">显示hello组件</button> <button @click="flag='my-world'">显示world组件</button> <p> <!-- 使用keep-alive组件缓存非活动组件,可以保留状态,避免重新渲染,默认每次都会销毁非活动组件并重新创建 --> <keep-alive> <component :is="flag"></component> </keep-alive> </p> </p> <script> var vm=new Vue({ el:'#itany', data:{ flag:'my-hello' }, components:{ 'my-hello':{ template:'<h3>我是hello组件:{{x}}</h3>', data(){ return { x:Math.random() } } }, 'my-world':{ template:'<h3>我是world组件:{{y}}</h3>', data(){ return { y:Math.random() } } } } }); </script>
상위-하위 구성 요소 및 구성 요소 간 데이터 전송
3 단방향 데이터 흐름
a)在调用子组件时,绑定想要获取的父组件中的数据 b)在子组件内部,使用props选项声明获取的数据,即接收来自父组件的数据 总结:父组件通过props向下传递数据给子组件
단방향 데이터 흐름
4 . 비부모-자식 구성요소 간 통신
a)在子组件中使用vm.$emit(事件名,数据)触发一个自定义事件,事件名自定义 b)父组件在使用子组件的地方监听子组件触发的事件,并在父组件中定义方法,用来获取数据 总结:子组件通过events给父组件发送消息,实际上就是子组件把自己的数据发送到父组件
비부모-자식 구성요소 간 통신
3. 슬롯 콘텐츠 배포
props是单向绑定的,当父组件的属性变化时,将传导给子组件,但是不会反过来 而且不允许子组件直接修改父组件中的数据,报错 解决方式: 方式1:如果子组件想把它作为局部数据来使用,可以将数据存入另一个变量中再操作,不影响父组件中的数据 方式2:如果子组件想修改数据并且同步更新到父组件,两个方法: a.使用.sync(1.0版本中支持,2.0版本中不支持,2.3版本又开始支持) 需要显式地触发一个更新事件 b.可以将父组件中的数据包装成对象,然后在子组件中修改对象的属性(因为对象是引用类型,指向同一个内存空间),推荐
슬롯 콘텐츠 배포
4. vue-router 라우팅
1.
非父子组件间的通信,可以通过一个空的Vue实例作为中央事件总线(事件中心),用它来触发事件和监听事件 var Event=new Vue(); Event.$emit(事件名,数据); Event.$on(事件名,data => {});
2. 기본 사용법
本意:位置、槽 作用:用来获取组件中的原内容,类似angular中的transclude指令
使用Vue.js开发SPA(Single Page Application)单页面应用 根据不同url地址,显示不同的内容,但显示在同一个页面中,称为单页面应用
routing 기본 사용법
3. 경로 중첩 및 매개변수 전달
bower info vue-router cnpm install vue-router -S
4. 경로 인스턴스 방법
a.布局 b.配置路由
5 경로 중첩 및 매개변수 전달, 애니메이션
5. 단일 파일 구성 요소
1.vue 파일
<p id="itany"> <p> <!-- 使用router-link组件来定义导航,to属性指定链接url --> <router-link to="/home">主页</router-link> <router-link to="/news">新闻</router-link> </p> <p> <!-- 路由出口 --> <!-- 路由匹配到的组件将渲染在这里 --> <!-- router-view用来显示路由内容 --> <router-view></router-view> </p> </p> <script> //1.定义组件 var Home={ template:'<h3>我是主页</h3>' } var News={ template:'<h3>我是新闻</h3>' } //2.配置路由 const routes=[ {path:'/home',component:Home}, {path:'/news',component:News}, {path:'*',redirect:'/home'} //重定向 ] //3.创建路由实例 const router=new VueRouter({ routes, //简写,相当于routes:routes // mode:'history', //更改模式 linkActiveClass:'active' //更新活动链接的class类名 }); //4.创建根实例并将路由挂载到Vue实例上 new Vue({ el:'#itany', router //注入路由 }); </script>
2.vue-loader
传参的两种形式: a.查询字符串:login?name=tom&pwd=123 {{$route.query}} b.rest风格url:regist/alice/456 {{$route.params}}
3.webpack
router.push() 添加路由,功能上与<route-link>相同 router.replace() 替换路由,不产生历史记录
webpack 공식 웹사이트
.vue文件,称为单文件组件,是Vue.js自定义的一种文件格式,一个.vue文件就是一个单独的组件,在文件内封装了组件相关的代码:html、css、js .vue文件由三部分组成:<template>、<style>、<script> <template> html </template> <style> css </style> <script> js </script>
4. 예:
4.1 다음을 사용하여 프로젝트를 만듭니다. 디렉토리 구조:
webpack-demo
浏览器本身并不认为.vue文件,所以必须对.vue文件进行加载解析,此时需要vue-loader 类似的loader还有许多,如:html-loader、css-loader、style-loader、babel-loader等 需要注意的是vue-loader是基于webpack的
4.2 App.vue 작성
4.3 관련 템플릿 설치
webpack是一个前端资源模板化加载器和打包工具,它能够把各种资源都作为模块来使用和处理 实际上,webpack是通过不同的loader将这些资源加载后打包,然后输出打包后文件 简单来说,webpack就是一个模块加载器,所有资源都可以作为模块来加载,最后打包输出
4.4 main.js 작성
webpack版本:v1.x v2.x webpack有一个核心配置文件:webpack.config.js,必须放在项目根目录下
4.5 webpack.config.js 작성
4.6 작성 .babelrc
4.7 작성 package.json
4.8 test
|-index.html |-main.js 入口文件 |-App.vue vue文件 |-package.json 工程文件 //npm init --yes |-webpack.config.js webpack配置文件 |-.babelrc Babel配置文件
webpack -demo
6.vue-cli scaffolding
1. 소개
cnpm install vue -S cnpm install webpack -D cnpm install webpack-dev-server -D cnpm install vue-loader -D cnpm install vue-html-loader -D cnpm install css-loader -D cnpm install vue-style-loader -D cnpm install file-loader -D cnpm install babel-loader -D cnpm install babel-core -D cnpm install babel-preset-env -D //根据配置的运行环境自动启用需要的babel插件 cnpm install vue-template-compiler -D //预编译模板 合并:cnpm install -D webpack webpack-dev-server vue-loader vue-html-loader css-loader vue-style-loader file-loader babel-loader babel-core babel-preset-env vue-template-compiler
2. 예, 단계:
공식 웹사이트 설치 예
2.1 vue-cli 설치 , vue 명령 환경 구성
import Vue from 'vue' //引入内置模块 import App from './App.vue' //引入自定义模块,需要加./ render:function(h){ //使用render函数(推荐)渲染组件,和compnents一样 return h(App); } /* scoped表示该样式只在当前组件中有效 */
2.2 프로젝트 초기화 및 프로젝트 템플릿 생성
npm run dev
2.3 생성된 프로젝트 디렉터리 입력, 모듈 패키지 설치
vue-cli是一个vue脚手架,可以快速构造项目结构 vue-cli本身集成了多种项目模板: simple 很少简单 webpack 包含ESLint代码规范检查和unit单元测试等 webpack-simple 没有代码规范检查和单元测试 browserify 使用的也比较多 browserify-simple
2.4
cnpm install vue-cli -g vue --version vue list
3 실행
语法:vue init 模板名 项目名
3. website
cd vue-cli-demo cnpm install
Vue 교육 영상 참고 : Vue.js 2.0 Family Bucket Series Video Course ( vue, vue-router, axios, vuex)
관련 추천 :
부모와 자녀 간 소통을 위한 채팅방 상세 예시 vue 구성 요소 vue.js 구성 요소 간에 데이터를 전송하는 방법vuejs2.0 이벤트 모니터링 데이터 전송을 위해 $emit를 사용하여 페이징 구성 요소를 구현하는 방법 data transfer_javascript 기술위 내용은 Vue 구성 요소 및 데이터 전송에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

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

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











DDREASE는 하드 드라이브, SSD, RAM 디스크, CD, DVD 및 USB 저장 장치와 같은 파일 또는 블록 장치에서 데이터를 복구하기 위한 도구입니다. 한 블록 장치에서 다른 블록 장치로 데이터를 복사하여 손상된 데이터 블록은 남겨두고 양호한 데이터 블록만 이동합니다. ddreasue는 복구 작업 중에 간섭이 필요하지 않으므로 완전히 자동화된 강력한 복구 도구입니다. 게다가 ddasue 맵 파일 덕분에 언제든지 중지하고 다시 시작할 수 있습니다. DDREASE의 다른 주요 기능은 다음과 같습니다. 복구된 데이터를 덮어쓰지 않지만 반복 복구 시 공백을 채웁니다. 그러나 도구에 명시적으로 지시된 경우에는 잘릴 수 있습니다. 여러 파일이나 블록의 데이터를 단일 파일로 복구

0. 이 글은 어떤 내용을 담고 있나요? 우리는 다재다능하고 빠른 최첨단 생성 단안 깊이 추정 모델인 DepthFM을 제안합니다. DepthFM은 전통적인 깊이 추정 작업 외에도 깊이 인페인팅과 같은 다운스트림 작업에서 최첨단 기능을 보여줍니다. DepthFM은 효율적이며 몇 가지 추론 단계 내에서 깊이 맵을 합성할 수 있습니다. 이 작품을 함께 읽어보아요~ 1. 논문 정보 제목: DepthFM: FastMoncularDepthEstimationwithFlowMatching 저자: MingGui, JohannesS.Fischer, UlrichPrestel, PingchuanMa, Dmytr

Google이 추진하는 JAX의 성능은 최근 벤치마크 테스트에서 Pytorch와 TensorFlow를 능가하여 7개 지표에서 1위를 차지했습니다. 그리고 JAX 성능이 가장 좋은 TPU에서는 테스트가 이루어지지 않았습니다. 개발자들 사이에서는 여전히 Tensorflow보다 Pytorch가 더 인기가 있습니다. 그러나 앞으로는 더 큰 모델이 JAX 플랫폼을 기반으로 훈련되고 실행될 것입니다. 모델 최근 Keras 팀은 기본 PyTorch 구현을 사용하여 세 가지 백엔드(TensorFlow, JAX, PyTorch)와 TensorFlow를 사용하는 Keras2를 벤치마킹했습니다. 첫째, 그들은 주류 세트를 선택합니다.

지연이 발생하고 iPhone의 모바일 데이터 연결 속도가 느립니까? 일반적으로 휴대폰의 셀룰러 인터넷 강도는 지역, 셀룰러 네트워크 유형, 로밍 유형 등과 같은 여러 요소에 따라 달라집니다. 더 빠르고 안정적인 셀룰러 인터넷 연결을 얻기 위해 할 수 있는 일이 몇 가지 있습니다. 수정 1 – iPhone 강제 다시 시작 때로는 장치를 강제로 다시 시작하면 셀룰러 연결을 포함한 많은 항목이 재설정됩니다. 1단계 – 볼륨 높이기 키를 한 번 눌렀다가 놓습니다. 그런 다음 볼륨 작게 키를 눌렀다가 다시 놓습니다. 2단계 - 프로세스의 다음 부분은 오른쪽에 있는 버튼을 누르는 것입니다. iPhone이 다시 시작되도록 하세요. 셀룰러 데이터를 활성화하고 네트워크 속도를 확인하세요. 다시 확인하세요 수정 2 – 데이터 모드 변경 5G는 더 나은 네트워크 속도를 제공하지만 신호가 약할 때 더 잘 작동합니다

Windows 운영 체제는 세계에서 가장 인기 있는 운영 체제 중 하나이며, 새로운 버전의 Win11이 많은 주목을 받았습니다. Win11 시스템에서 관리자 권한을 얻는 것은 사용자가 시스템에서 더 많은 작업과 설정을 수행할 수 있도록 하는 중요한 작업입니다. 이번 글에서는 Win11 시스템에서 관리자 권한을 얻는 방법과 권한을 효과적으로 관리하는 방법을 자세히 소개하겠습니다. Win11 시스템에서 관리자 권한은 로컬 관리자와 도메인 관리자의 두 가지 유형으로 나뉩니다. 로컬 관리자는 로컬 컴퓨터에 대한 모든 관리 권한을 갖습니다.

세상은 미친 듯이 큰 모델을 만들고 있습니다. 인터넷의 데이터만으로는 충분하지 않습니다. 훈련 모델은 '헝거게임'처럼 생겼고, 전 세계 AI 연구자들은 이러한 데이터를 탐식하는 사람들에게 어떻게 먹이를 줄지 고민하고 있습니다. 이 문제는 다중 모드 작업에서 특히 두드러집니다. 아무것도 할 수 없던 시기에, 중국 인민대학교 학과의 스타트업 팀은 자체 새로운 모델을 사용하여 중국 최초로 '모델 생성 데이터 피드 자체'를 현실화했습니다. 또한 이해 측면과 생성 측면의 두 가지 접근 방식으로 양측 모두 고품질의 다중 모드 새로운 데이터를 생성하고 모델 자체에 데이터 피드백을 제공할 수 있습니다. 모델이란 무엇입니까? Awaker 1.0은 중관촌 포럼에 최근 등장한 대형 멀티모달 모델입니다. 팀은 누구입니까? 소폰 엔진. 런민대학교 힐하우스 인공지능대학원 박사과정 학생인 Gao Yizhao가 설립했습니다.

이번 주, 오픈AI(OpenAI), 마이크로소프트(Microsoft), 베조스(Bezos), 엔비디아(Nvidia)가 투자한 로봇 회사인 FigureAI는 약 7억 달러의 자금 조달을 받았으며 내년 내에 독립적으로 걸을 수 있는 휴머노이드 로봇을 개발할 계획이라고 발표했습니다. 그리고 Tesla의 Optimus Prime은 계속해서 좋은 소식을 받았습니다. 올해가 휴머노이드 로봇이 폭발하는 해가 될 것이라는 데는 누구도 의심하지 않는다. 캐나다에 본사를 둔 로봇 회사인 SanctuaryAI는 최근 새로운 휴머노이드 로봇인 Phoenix를 출시했습니다. 관계자들은 이 로봇이 인간과 같은 속도로 자율적으로 많은 작업을 완료할 수 있다고 주장한다. 인간의 속도로 자동으로 작업을 완료할 수 있는 세계 최초의 로봇인 Pheonix는 각 물체를 부드럽게 잡고 움직이며 우아하게 왼쪽과 오른쪽에 배치할 수 있습니다. 자동으로 물체를 식별할 수 있습니다.

OracleSQL의 나눗셈 연산에 대한 자세한 설명 OracleSQL에서 나눗셈 연산은 두 숫자를 나눈 결과를 계산하는 데 사용되는 일반적이고 중요한 수학 연산입니다. 나누기는 데이터베이스 쿼리에 자주 사용되므로 OracleSQL에서 나누기 작업과 사용법을 이해하는 것은 데이터베이스 개발자에게 필수적인 기술 중 하나입니다. 이 기사에서는 OracleSQL의 나누기 작업 관련 지식을 자세히 설명하고 독자가 참고할 수 있는 특정 코드 예제를 제공합니다. 1. OracleSQL의 Division 연산
