博主信息
博文 37
粉丝 0
评论 0
访问量 44322
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
组件的知识
手机用户1607314868
原创
841人浏览过

组件

组件:从形式上看就是一个自定义html标签
组件是可复用的vue实例,是构造函数vue的子类

  1. <div id="root">
  2. <child-component></child-component>
  3. </div>
  4. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  5. <script>
  6. //1.创建
  7. const childComponent =Vue.extend({
  8. template:`<h2>hello world</h2>`,
  9. });
  10. //2.注册
  11. // 使用 vue.component(组件名,是对象字面量表示的组件配置项)使用静态方式注册的称为 全局组件,全局组件声明在vue实例外部。通常一个项目只有一个vue实例,所以尽可能不要用全局组件
  12. //组件名:自定义的html标签
  13. Vue.component("child-component",childComponent);
  14. // 3.挂载
  15. const vm=new Vue({
  16. //挂载点:是隐式声明的组件
  17. el:'#root',
  18. //组件声明形式是中间用 -
  19. });
  20. </script>
局部组件

局部组件只属于某个实例

  1. <div id="root">
  2. <my-child></my-child>
  3. </div>
  4. <script>
  5. //局部组件只属于某个实例
  6. const vm=new Vue({
  7. el:"#root",
  8. //局部组件是属于vue实例的
  9. components:{
  10. //属性不用加双引号 my-child可以写成 myChild 不加双引号
  11. "my-child":{
  12. template:`<p>hello {{site}}</p>`,
  13. data(){
  14. return {
  15. site:"php中文网",
  16. }
  17. }
  18. }
  19. }
  20. });
  21. </script>

组件之间的传参

1.父组件向子组件传参
父组件是通过自定义属性的方式将参数传到子组件中

  1. <div id="app">
  2. <!-- 绑定usernamew属性 -->
  3. <btn-inc :usernamew="username"></btn-inc>
  4. </div>
  5. <script>
  6. const vm=new Vue({
  7. el:"#app",
  8. data(){
  9. return {
  10. username:"播放",
  11. }
  12. },
  13. //局部组件
  14. components:{
  15. btnInc:{
  16. //自定义属性
  17. props:['usernamew'],
  18. template:`<span>{{usernamew}}</span>`,
  19. },
  20. },
  21. }),
  22. </script>

2.子组件向父组件传参
子组件向父组件传参是通过同名事件来实现的

  1. <btn-inc :usernamew="username" :my-count="count" @click-count="handle"></btn-inc>
  2. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  3. <script>
  4. const vm=new Vue({
  5. el:"#app",
  6. data(){
  7. return {
  8. username:"播放",
  9. count:0,
  10. }
  11. },
  12. //局部组件
  13. components:{
  14. btnInc:{
  15. //自定义属性
  16. props:['usernamew',"myCount"],
  17. //$emit(父组件中要使用的方法名称,子组件要传给父组件的值)
  18. template:`<div><button @click="$emit('click-count',10)>点赞:+{{myCount}}</button><span>{{usernamew}}</span></div>`,
  19. },
  20. },
  21. methods:{
  22. handle(value){
  23. this.count+=value;
  24. },
  25. },
  26. }),
  27. </script>

子组件和父组件的双向数据绑定

  1. <div id="app">
  2. <p>父组件:{{price}}元</p>
  3. <span>子主件</span>
  4. <my-input :my-price="price" @input-text="handle"> </my-input>
  5. </div>
  6. <script>
  7. const vm=new Vue({
  8. el:"#app",
  9. data(){
  10. return{
  11. price:4567,
  12. };
  13. },
  14. //主件
  15. components:{
  16. "my-input":{
  17. props:['my-price'],
  18. template:`<input type="text" value="myPrice" @input="$emit('input-text',$event.target.value)" >`,
  19. methods:{
  20. handle(value){
  21. this.price=value;
  22. }
  23. },
  24. },
  25. },
  26. methods:{
  27. handle(value){
  28. this.price=value;
  29. }
  30. }
  31. });
  32. </script>
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学