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看组件实例对象VueComponentconsole.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>
     

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pandas有了平替Polars

Polars是一个Python数据处理库&#xff0c;旨在提供高性能、易用且功能丰富的数据操作和分析工具。它的设计灵感来自于Pandas&#xff0c;但在性能上更加出色。 Polars具有以下主要特点&#xff1a; 强大的数据操作功能&#xff1a;Polars提供了类似于Pandas的数据操作接口&am…

差不多,冬至......

冬/至/快/乐 老广有句话“冬大过年”&#xff0c;冬至作为一年中的最重要时节之一 在古时候人们要完成一大串必做清单&#xff0c;让这一天充满仪式感 而现代人的“过冬”仪式感更多寄托在种种“至味”中 冬至“食”刻,南北独有的仪式感 南VS北 南吃清补 老广腊味“冬日…

微信小程序~如何设置页面的背景色

微信小程序~如何设置页面的背景色 众所周知&#xff0c;微信小程序每个页面由.json&#xff0c;.scss&#xff0c;.ts&#xff0c;.wxml这四个文件组成。 有的小伙伴会发现&#xff0c;需要给页面加背景色的时候&#xff0c;只需在此页面的.scss文件中写个page{background-colo…

基于python的selenium

一.安装 安装WebDriver 查看chrome版本号&#xff0c;设置-帮助-关于Google chrome&#xff0c;找到版本号。 可以到这个网站进行下载对应版本的chromedriver,如果chrome浏览器版本过高,可以下载最新版的chromedriver进行使用 Chrome for Testing availability 下载下来之后…

vscode中使用GitHub Copilot Chat

文章目录 一、什么是Github Copilot Chat二、安装使用三、如何使用1. 聊天功能2. 内联功能 一、什么是Github Copilot Chat GitHub Copilot Chat 由 OpenAI 的 GPT-4 大型多模态模型提供支持&#xff0c;能带来更准确的代码建议、解释和指导。GitHub Copilot Chat 的内联功能可…

axios进行图片上传组件封装

文章目录 前言图片上传接口&#xff08;axios通信)图片上传使用upload上传头像效果展示总结 前言 node项目使用 axios 库进行简单文件上传的模块封装。 图片上传接口&#xff08;axios通信) 新建upload.js文件&#xff0c;定义一个函数&#xff0c;该函数接受一个上传路径和一…

.NET 8最强新功能:键控服务依赖注入

什么是键控服务依赖注入&#xff1f; 在之前的依赖注入中&#xff0c;服务是根据其类型进行注册和解析的。如果出现同一接口有多个实现怎么办呢&#xff1f;这时候就可以使用.NET 8的新功能“键控服务依赖注入”。它允许您注册接口的多个实现&#xff0c;每个实现都与一个唯一…

Python:巧用语法糖,给代码加点甜

文章目录 1.关于python语法糖2.装饰器3.列表推导式4.生成器表达式5.条件表达式6.迭代器和生成器7.上下文管理器8.函数参数解包9.总结Python技术资源分享1、Python所有方向的学习路线2、学习软件3、入门学习视频4、实战案例5、清华编程大佬出品《漫画看学Python》6、Python副业兼…

如何做好电商?利用“让利思维”抱团取暖商家互利互惠共赢之策

如何做好电商&#xff1f;利用“让利思维”抱团取暖商家互利互惠共赢之策 引言&#xff1a;别再听信什么微商了&#xff0c;越来越多人呢&#xff1f;被互联网上消费市场的各种商业模式&#xff0c;割怕了&#xff01;有钱的不敢消费了&#xff0c;拓客引流越来越难&#xff0c…

Python中最常用的10个内置函数!

文章目录 前言1. print()2. len()3. input()4. range()5. list(), tuple(), dict()6. max() 和 min()7. sum()8. abs()9. sorted()10. type()Python技术资源分享1、Python所有方向的学习路线2、学习软件3、入门学习视频4、实战案例5、清华编程大佬出品《漫画看学Python》6、Pyt…

使用Java语言统计一行字符串的数据

方法 创建字符串接收器&#xff0c;接收用户输入的字符串&#xff0c;然后将其转换为字符串数组&#xff0c;安装字符对应的字节码进行判断。 代码 import java.io.*; public class StaticsChar {public static void main(String[] args) throws IOException{String zifuch…

【Prometheus|报错】Out of bounds

【背景】进入Prometheus地址的9090端口&#xff0c;pushgateway&#xff08;0/1&#xff09;error : out of bounds 【排查分析】 1、out of bounds报错&#xff0c;是由于Prometheus向tsdb存数据出错&#xff0c;与最新存数据的时间序列有问题&#xff0c;有可能当前时间与最…