Vue中Render函数、_ref属性、_props配置的使用

Render函数

  • 由于导入的vue为vue.runtime.xxx.js是运行版的vue.只包含:核心功能:没有模板解析器

  • 完整版的Vue为vue.js包含:核心功能+模板解析器

  • vue.runtime.esm.js中的esm为ES6的模块化

  • //导入的vue并非完整的vue,这样做的好处是少了模板解析器。能减少内存。
    import Vue from "vue"
    //由于导入的vue并不完整,无法解析template模板。故下面的代码无法实现
    components: { App },
    template: '<App/>'
  • 因为vue.runtime.xxx.js没有模板解析器,所有不能使用template配置项,故须使用render函数接收的createElement函数来指定具体内容

  • //下面为render的原型,createElement()括号内的第一位置为元素,元素需要加入''。第二个为该元素所呈现的内容
       render(createElement){
       return createElement('h1','你好啊')
       }
    • 下面的代码为演变为脚手架中的render

  • // 没有用到this可以写成箭头函数,=>左边目前一个元素,可以把括号去掉。createElement可以用字母随意替换。花括号的内容和   //return直接省去。由于App为组件不是元素故不加''
      render:h => (App)

    ref属性

    • 用来给元素或子组件注册引用信息(id的替代者)

    • ref应用在html标签上的获取的是真实的DOM元素,应用在组件标签上是组件的实例对象(vc)

    • 使用方式:

    • 获取ref收集的元素或子组件:this.$refs.xxx。例如:this.$refs.stu

    • <template>
        <div class="hello">
          <!-- ref可以用id替换,这里不做演示。 -->
          <h1 v-text="mas" ref="mas"></h1>
          <button @click="show">点击按钮显示上方的Dom元素</button>
          <!--假设有一个子组件为Student, 加入ref后ref会收集子组件Student的VueComponent。不在是当前Select组件的VueCoponent。-->
          <Student/ ref="stu">
        </div>
      </template>
      ​
      <script>
      import Student from "xxxxx";
      export default {
        name: 'Select',
        components: {Student},
        data () {
          return {
            mas: '啦啦啦'
          }
        },
        methods:{
          show(){
            // 输出this看组件实例对象VueComponent
            console.log(this);
            // 通过VueComponent找到mas并将其输出到控制台
            console.log(this.$refs.mas);
          }
        }
      }
      </script>
       
    • 查找ref收集的mas

 

_props配置

  • 需求:在父组件中使用子组件的属性名、属性值只需修改使用。

  • 组件的复用性

  • <template>
      <div>
        <!-- 组件的复用性。-->
        <!-- 需要使用子组件的属性名mas、address、age则需要使用在子组件用props来注册。在将所要修改的属性值像如下代码传给子组件  -->
        <useSelect mas="李四" address="新加坡" :age="18+1"/>
        <!-- 下面的代码age类型为Number。给age绑定v-bind则是把""中的内容当作表达式直接计算。不绑定则为字符串 -->
        <useSelect mas="李四" address="新加坡" age="18+1"/>    
      </div>
    </template>
    ​
    <script>
    import useSelect from '../components/useSelect.vue'
    export default {
       name: 'School',
      components: {useSelect},
    </script>
  • 在父组件中调用的属性名,需要在子组件中注册

  • <template>
      <div class="hello">
        <h1 >名字为:{{ mas }}</h1>
        <h1 >地址:{{ address }}</h1>
        <h1 >年龄:{{ age }}</h1>
      </div>
    </template>
    ​
    <script>
    export default {
      name: 'useSelect',
      data () {
        return {
          mas: '悟空',
          address:'花果山',
          age: '19'
        }
      },
        
      // 注册组件的第一种写法:
      props:['mas','address','age']
      // 注册组件的第二种写法
       props: {
        mas:{
          type:String,//mas的类型是字符串
          required:true//mas是必要的,必须要传递过来。不然报警报
        },
        age:{
          type:Number,
          default:19//默认值
        },
        address: {
          type: String,
          required: true//默认值
        },
      }  
      // 注册组件的第三种写法
       props: {
         mas:String,
         age:Number,
         address:String
       }
    }
    </script>
     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/269530.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nosql-redis整合测试

nosql-redis整合测试 1、创建项目并导入redis2、配置redis3、写测试类4、在redis中创建key5、访问80826、在集成测试中测试方法 1、创建项目并导入redis 2、配置redis 3、写测试类 4、在redis中创建key 5、访问8082 6、在集成测试中测试方法 package com.example.boot3.redis;…

免费使用谷歌Gemini模型学习LLM编程

虽然谷歌的Gemini大语言模型爆出很大的乌龙&#xff0c;但这不影响我们使用Gemini Pro来学习LLM编程。 目前Bard还没有全部切换为Gemini Pro模型&#xff0c;但是作为程序员&#xff0c;已经不需要等待&#xff0c;可以直接调用Gemini Pro的接口了。谷歌这次开发者优先的做法值…

全国250米DEM数据

全国250米DEM数据 DEM是数字高程模型的英文简称(Digital Elevation Model)&#xff0c;是研究分析地形、流域、地物识别的重要原始资料。由于DEM 数据能够反映一定分辨率的局部地形特征&#xff0c;因此通过DEM 可提取大量的地表形态信息&#xff0c;可用于绘制等高线、坡度图、…

【adb】电脑通过ADB向手机传输文件

具体步骤如下&#xff1a; Step1 下载ADB工具 下载最新版本的 ADB工具 !!! 注意&#xff1a;一定要是最新版本的ADB&#xff0c;否则很可能导致无法识别到手机。 将下载的ADB解压以后的文件如下图所示&#xff1a; Step2 添加环境变量 将 ADB的路径 D:\platformtools &…

【svn】win11最新svn每天自动化定时update、commit,隐藏窗口,定时脚本编写

本文使用schtasks结合bat脚本实现全自动svn update以及commit操作。执行时隐藏cmd窗口&#xff0c;全自动后台执行。 执行脚本 写脚本参考了网上很多文章&#xff0c;但是这些文章的方法都有问题或者已经失效&#xff0c;比如&#xff1a; 老版本的bat脚本&#xff0c;使用v…

PSoc62™开发板之按键控制LED

实验目的 使用板子上的用户自定义按键控制LED亮灭&#xff0c;当按键按下时LED亮起来&#xff0c;不按下则不亮 电路图 按键电路 板子有两组按键&#xff0c;分别是系统复位按键和用户自定义按键&#xff0c;这里我们选择控制用户自定义按键&#xff0c;可以看到MCU_USER_B…

UI自动化Selenium 元素定位之Xpath

一、元素定位方式 selenium中定位元素&#xff0c;通常有几种方式&#xff1a; 1、通过id定位&#xff1a;By.ID 2、通过Name定位&#xff1a;By.Name 3、通过元素其他属性定位&#xff0c;如class、type、text文本。。。。。。等等&#xff0c;如果要用属性定位那就需要使…

12.鸿蒙HarmonyOS App(JAVA) page的隐式跳转

跳转到指定Page的指定AbilitySlice MainAbilitySlice按钮触发事件&#xff1a; btn.setClickedListener(component -> { Intent _intent new Intent(); Operation operation new Intent.OperationBuilder() .withBundleName(…

服务器系统时间不同步如何处理

在分布式计算环境中&#xff0c;服务器系统时间的同步至关重要。然而&#xff0c;由于各种原因&#xff0c;服务器系统时间不同步的问题时有发生,这可能会导致严重的问题&#xff0c;如日志不准确、证书验证失败等。下面我们可以一起探讨下造成服务器系统时间不同的原因以及解决…

【2023下算法课设】Gray码的分治构造算法

Gray码是一个长度为2ⁿ的序列&#xff0c;序列中无相同元素&#xff0c;且每个元素都是长度为n位的二进制位串&#xff0c;相邻元素恰好只有1位不同。例如长度为2的格雷码为&#xff08;000,001,011,010,110,111,101,100&#xff09;&#xff0c;设计分治算法对任意的n值构造相…

基于@FeignClient注解实现两个微服务之间接口的调用(简单)

场景需求&#xff1a;微服务A中的接口input需要调用微服务B中接口的output数据。 实现&#xff1a;使用feign实现即可。 微服务B中的接口&#xff1a; 步骤一&#xff1a;微服务A中编写一个接口&#xff0c;该接口就是调用微服务B的接口&#xff1b;需要在接口上添加FeignClien…

视觉学习(5) —— 绑定流程

1、前提 2、接收事件 绑定参数 3、规则列表的设置 &#xff08;1&#xff09;字节起止位置 0到1是两个字节 当输入值为整数1 &#xff08;2&#xff09;比较规则配置 大于 等于 小于 上升沿等等 而后是范围 值等于1到5之间都算满足条件 4、全局触发 以上的逻辑&#xff1a;当…

给矿机,预计到2024年将达到165亿美元

近年来&#xff0c;受加密货币挖矿需求增加和比特币等加密货币升值的推动&#xff0c;矿机市场经历了显着增长。矿机&#xff0c;也称为 ASIC&#xff08;专用集成电路&#xff09;&#xff0c;是专门设计用于执行加密货币挖掘所需的复杂计算的计算机硬件。 全球市场分析&#…

Python 爬虫之下载视频(五)

爬取第三方网站视频 文章目录 爬取第三方网站视频前言一、基本情况二、基本思路三、代码编写四、注意事项&#xff08;ffmpeg&#xff09;总结 前言 国内主流的视频平台有点难。。。就暂且记录一些三方视频平台的爬取吧。比如下面这个&#xff1a; 一、基本情况 这次爬取的方…

财务数据智能化:用AI工具高效制作财务分析PPT报告

Step1: 文章内容提取 WPS AI 直接打开文件&#xff0c;在AI对话框里输入下面指令&#xff1a; 假设你是财务总监&#xff0c;公司考虑与茅台进行业务合作、投资或收购&#xff0c;请整合下面茅台2021年和2022年的财务报告信息。整理有关茅台财务状况和潜在投资回报的信息&…

qt项目-《图像标注软件》源码阅读笔记-Label 2d绘制图片及标注类

目录 1. Command 概览 1.1 功能 1.2 字段 1.3 方法 2. 源码细节 2.1 paintEvent 2.2 mousePressEvent 2.3 mouseMoveEvent 2.4 mouseReleaseEvent 1. Command 概览 1.1 功能 2d绘制图片及标注类&#xff0c;继承QLabel 内部具体的形状的绘制均交由Shape类进行处…

GPU性能实时监测的实用工具

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

Selenium自动化测试框架(附教程+源码)

说起自动化测试&#xff0c;我想大家都会有个疑问&#xff0c;要不要做自动化测试&#xff1f; 自动化测试给我们带来的收益是否会超出在建设时所投入的成本&#xff0c;这个嘛别说是我&#xff0c;即便是高手也很难回答&#xff0c;自动化测试的初衷是美好的&#xff0c;而测试…

游戏行业变天,游戏股遭暴击,腾讯网易等股票还能投资吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 国家新闻出版署发布游戏新规 12月22日国家新闻出版署发布了《网络游戏管理办法》&#xff08;草案征求意见稿&#xff09;&#xff0c;其中提到网络游戏不得设置每日登陆、首次充值、连续充值等诱导性奖励&#xff0c;而且…

Ubuntu 22.04.3 Server 设置静态IP 通过修改yaml配置文件方法

目录 1.查看网卡信息 2.修改yaml配置文件 3.应用新的网络配置 4.重新启动网络服务 文章内容 本文介绍Ubuntu 22.04.3 Server系统通过修改yaml配置文件配置静态 ip 的方法。 1.查看网卡信息 使用ifconfig命令查看网卡信息获取网卡名称​ 如果出现Command ifconfig not fo…