非单文件组件

简介: 非单文件组件

1.代码示例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>基本使用</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
      <h1>{{msg}}</h1>
      <hr>
      <!-- 第三步:编写组件标签 -->
      <school></school>
      <hr>
      <!-- 第三步:编写组件标签 -->
      <student></student>
    </div>
  </body>
  <script type="text/javascript">
    Vue.config.productionTip = false
    //第一步:创建school组件
    const school = Vue.extend({
            //组件定义时,一定不要写el配置项,因为最终所有的组件都要被一个vm管理,由vm决定服务于哪个容器。
      template:`
        <div class="demo">
          <h2>学校名称:{{schoolName}}</h2>
          <h2>学校地址:{{address}}</h2> 
        </div>
      `,
      data(){
        return {
          schoolName:'尚硅谷',
          address:'北京昌平'
        }
      }
    })
    //第一步:创建student组件
    const student = Vue.extend({
      template:`
        <div>
          <h2>学生姓名:{{studentName}}</h2>
          <h2>学生年龄:{{age}}</h2>
        </div>
      `,
      data(){
        return {
          studentName:'JOJO',
          age:20
        }
      }
    })
    //创建vm
    new Vue({
      el:'#root',
      data:{
        msg:'你好,JOJO!'
      },
      //第二步:注册组件(局部注册)
      components:{
        school,
        student
      }
    })
  </script>
</html>


效果:


2.关于组件名在命名时的注意点:


一个单词组成:

           第一种写法(首字母小写):school

           第二种写法(首字母大写):School

多个单词组成:

          第一种写法(kebab-case命名):my-school

          第二种写法(CamelCase命名):MySchool (需要Vue脚手架支持)

备注:

        组件名尽可能回避HTML中已有的元素名称,例如:h2、H2都不行

        可以使用name配置项指定组件在开发者工具中呈现的名字

关于组件标签:

         第一种写法:<school></school>

         第二种写法:<school/>

        备注:不使用脚手架时,<school/>会导致后续组件不能渲染

一个简写方式:const school = Vue.extend(options)可简写为:const school = options


3.组件的嵌套

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>组件的嵌套</title>
    <script type="text/javascript" src="../js/vue.js"></script>
  </head>
  <body>
    <div id="root">
    </div>
  </body>
  <script type="text/javascript">
    Vue.config.productionTip = false
    //定义student组件
    const student = Vue.extend({
      template:`
        <div>
          <h2>学生名称:{{name}}</h2>  
          <h2>学生年龄:{{age}}</h2> 
        </div>
      `,
      data(){
        return {
          name:'JOJO',
          age:20
        }
      }
    })
    //定义school组件
    const school = Vue.extend({
      template:`
        <div>
          <h2>学校名称:{{name}}</h2>  
          <h2>学校地址:{{address}}</h2> 
          <student></student>
        </div>
      `,
      components:{
        student
      },
      data(){
        return {
          name:'尚硅谷',
          address:'北京'
        }
      }
    })
    //定义hello组件
    const hello = Vue.extend({
      template:`
        <h1>{{msg}}</h1>
      `,
      data(){
        return {
          msg:"欢迎学习尚硅谷Vue教程!"
        }
      }
    })
    //定义app组件
    const app = Vue.extend({
      template:`
        <div>
          <hello></hello>
          <school></school>
        </div>
      `,
      components:{
        school,
        hello
      }
    })
    //创建vm
    new Vue({
      template:`
        <app></app>
      `,
      el:'#root',
      components:{
        app
      }
    })
  </script>
</html>


相关文章
|
3月前
|
运维 监控 数据可视化
一文详解:工业软件“低代码开发平台”技术架构研究与分析
本文围绕工业软件低代码开发平台的机遇与挑战,提出基于自动化引擎的技术架构,由工具链、引擎库、模型库、组件库、工业数据网关和应用门户组成。文章分析了其在快速开发、传统系统升级中的应用模式及价值,如缩短创新周期、降低试错成本、解决资源缺乏和提升创新可复制性,为我国工业软件产业发展提供参考和支持。
|
5月前
|
人工智能 安全 5G
5G网络安全全解析——新机遇与潜在风险
5G网络安全全解析——新机遇与潜在风险
170 4
|
7月前
|
机器学习/深度学习 边缘计算 人工智能
《深度剖析:边缘计算与AI融合下,生成对抗网络部署的变革与展望》
在数字化时代,数据量激增对实时性和隐私保护提出更高要求。边缘计算与AI的融合成为关键路径,尤其生成对抗网络(GAN)的部署方式正经历变革。传统GAN依赖云端资源,存在延迟、带宽和隐私风险。边缘计算使GAN可在本地或与云端协同部署,提升实时性与安全性。新部署方式包括边缘设备本地部署、边缘-云协同及分布式边缘部署,但面临资源限制、网络不稳定和数据安全等挑战。通过模型压缩、自适应通信及加密技术,GAN可更好地满足各行业需求,推动其广泛应用。
150 3
|
7月前
|
人工智能 弹性计算 自然语言处理
《AI剧本生成与动画创作》解决方案深度测评报告
该解决方案基于阿里云函数计算(FC)和百炼大模型平台,结合图像生成模型与语音合成技术,实现从剧本生成到动画渲染的自动化流程。核心步骤包括剧本生成、分镜设计和动画渲染,支持模块化扩展和低成本弹性伸缩。部署耗时约80分钟,首次部署需下载大模型文件。优势在于高效生成动画、低成本试错和丰富的动态效果,但也存在剧本逻辑跳跃、画面细节瑕疵等问题。综合评分为4/5,适用于短视频营销等场景。
|
8月前
|
JavaScript 搜索推荐 Java
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
8月前
|
JSON 小程序 JavaScript
原生微信小程序笔记完整总结
原生微信小程序笔记完整总结
240 1
|
11月前
|
数据挖掘 测试技术 UED
A/B测试
【10月更文挑战第10天】A/B测试
389 2
|
12月前
|
存储 监控 NoSQL
MongoDB以其独特的优势和广泛的应用场景
MongoDB以其独特的优势和广泛的应用场景
420 8
|
11月前
|
传感器 机器学习/深度学习 数据采集
AI在环保中的角色:污染监测与防治
【10月更文挑战第6天】AI在环保领域的应用,不仅提升了污染监测的精准度和防治效率,还推动了环保技术的创新和升级。作为未来环保事业的重要力量,AI正以其独特的优势,为构建更加绿色、可持续的生态环境贡献着智慧与力量。我们有理由相信,在AI的助力下,我们的地球将变得更加美好。
|
传感器 存储 安全
机器通信 | 《5G移动无线通信技术》之八
本节主要介绍了机器通信的内容以及超可靠机器类通信。
机器通信  | 《5G移动无线通信技术》之八