一、ref属性

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

        2.应用在html标签上获取的是真实DOM元素,用在组件标签上是组件实例对象

        3.使用方式:

                (1).打标识:<h1 ref="xxx">...</h1> 或 <School ref="xxx" />

                (2).获取:this.$refs.xxx

<template><div><h2 v-text="msg" ref="text"></h2><button @click="showDOM" ref="btn">点击获取DOM元素</button><School ref="sch"/></div>
</template><script>import School from './Components/School'export default {name:'App',components:{School},data() {return {msg:'欢迎学习CLI!!!'}},methods: {showDOM(){console.log(this.$refs.text) //真实DOM元素console.log(this.$refs.btn) //真实DOM元素console.log(this.$refs.sch) //School组件的实例对象}},}
</script>

二、props配置

        功能:让组件接收外部传过来的数据

                (1).传递数据:

                        <Demo name="xxx">

                (2).接收数据:

                        第一种方式(只接收):

                                props:['name']

                        第二种方式(限制类型):

                                props:{

                                        name:String

                                }

                        第三种方式(限制类型、限制必要性、指定默认值):

                                props:{

                                        name:{

                                                type:String, //类型

                                                required:true, //必要性

                                                default:'张三' //默认值

                                        }

                                }

        备注:props是只读的,Vue底层会监测你对props的修改,就会发出警告,若业务需求确实需要修改,那么请复制props的内容到data中一份,然后去修改data中的数据。

        School.vue:

<template><div class="school"><h2>{{ msg }}</h2><h2>{{ name }}</h2><h2>{{ myAge+1 }}</h2><h2>{{ sex }}</h2><button @click="updateAge">点击修改年龄</button></div>
</template><script>export default {name:'Student',data() {return {msg:'欢迎学习CLI!!!',myAge:this.age}},methods: {updateAge(){this.myAge++}},// 简单声明接收props:['name','age','sex']//接收的同时对数据进行类型限制// props:{//     name:String,//     sex:String,//     age:Number// }//接收的同时对数据进行类型限制+默认值的指定+必要性的限制// props:{//     name:{//         type:String,//         required:true//     },//     age:{//         type:Number,//         default:18//     },//     sex:{//         type:String,//         required:true//     }// }}
</script>

         App.vue:

<template><div><Student name="张三" :age="18" sex="男"/></div>
</template><script>import Student from './Components/Student'export default {name:'App',components:{Student},}
</script>

三、mixin配置

        1.功能:可以把多个组件共用的配置提取成一个混入对象

        2.使用方式:

                (1).定义混合:

                        {

                                data(){...},

                                methods:{...},

                                ...

                        }

                (2).使用混合:

                        (1.全局混入:Vue.mixin(xxx)

                        (2.局部混入:mixins:['xxx']

/* 定义mixin.js */
export const mixin = {methods: {showName(){alert(this.name)}},mounted() {console.log('你好啊!')},
}export const mixin2 = {data() {return {x:100,y:200}},
}  
/* 全局混入 */
//全局混入会在所有的Vue节点上混入
import Vue from "vue";
import App from "./App"
import {mixin,mixin2} from './mixin'Vue.mixin(mixin)
Vue.mixin(mixin2)Vue.config.productionTip = falsenew Vue({el:'#App',render: h => h(App)
})
/* 局部混入 */
<template><div><h2 @click="showName()">{{ name }}</h2><h2>{{ sex }}</h2></div>
</template><script>import {mixin,mixin2} from '../mixin'export default {name:'Student',data() {return {name:'张三',sex:'男',x:666 //若组件中已有定义变量,则优先使用组件中定义的变量}},//若组件中已经定义相同生命周期钩子,则使用两遍对应的生命周期钩子mounted(){alert('你好啊!') },mixins:[mixin,mixin2]}
</script>

四、插件

        1.功能:用于增强Vue

        2.本质:包含install方法的一个对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的参数。

        3.定义插件:

                对象.install = function (Vue,options) {

                        Vue.filter(......) //添加全局过滤器

                        Vue.directive(......) //添加全局指令

                        Vue.mixin(......) //配置全局混入

                        //添加实例方法

                        Vue.prototype.$myMethod = function () {......}

                        Vue.prototype.$myProperty= xxx

                }

        4.使用插件:Vue.use()

/* 定义plugins插件 */
export default {install(Vue){console.log("@@install",Vue)//过滤器Vue.filter('mySlice',function(value) {return value.slice(0,2)})//自定义指令Vue.directive('fbind',{bind(element,binding){element.value = binding.value},inserted(element,binding){element.focus()},updat(element,binding) {element.value = binding.value},})//mixinVue.mixin({data() {return {x:100}},})//在Vue原型上添加一个方法Vue.prototype.hello = () => (alert('你好呀!'))},
}
/* 在main.js中使用插件 */
import Vue from "vue";
import App from "./App"
import plugins from "./plugins";Vue.config.productionTip = falseVue.use(plugins)new Vue({el:'#App',render: h => h(App)
})
/* School.vue */
<template><div><h2>{{ name | mySlice }}</h2><h2>{{ address }}</h2><button @click="test">点击我</button></div>
</template><script>export default {name:'School',data() {return {name:'清华大学',address:'北京'}},methods:{test(){this.hello()}}}
</script>/* Student.vue */
<template><div><h2>{{ name }}</h2><h2>{{ sex }}</h2><input type="text" v-fbind:value="name"></div>
</template><script>export default {name:'Student',data() {return {name:'张三',sex:'男',}},}
</script>

五、scoped样式

        1.作用:让样式在局部生效,防止冲突。

        2.写法:<style scoped>

        当两个组件的css样式名相同时,后导入的组件会覆盖掉先导入组件中相同样式名的样式,style中引入scoped样式即可分割作用域。

/* School.vue */
<template><div class="demo"><h2>{{ name | mySlice }}</h2><h2>{{ address }}</h2></div>
</template><script>export default {name:'School',data() {return {name:'清华大学',address:'北京'}},}
</script><style scoped>.demo{background-color: orange;}
</style>/* Student */
<template><div class="demo"><h2 class="font-color">{{ name }}</h2><h2>{{ sex }}</h2></div>
</template><script>export default {name:'Student',data() {return {name:'张三',sex:'男',}},}
</script><style lang="less" scoped>.demo{background-color: skyblue;.font-color{color: orange;}}
</style>

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

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

相关文章

Ubuntu安装k8s集群入门实践-v1.31

准备3台虚拟机 在自己电脑上使用virtualbox 开了3台1核2G的Ubuntu虚拟机&#xff0c;你可以先安装好一台&#xff0c;安装第一台的时候配置临时调高到2核4G&#xff0c;安装速度会快很多&#xff0c;安装完通过如下命令关闭桌面&#xff0c;能够省内存占用&#xff0c;后面我们…

Word Press富文本控件的保存

新建富文本编辑器&#xff0c;并编写save方法如下&#xff1a; edit方法&#xff1a; export default function Edit({ attributes, setAttributes }) {return (<><div { ...useBlockProps() }><RichTexttagNameponChange{ (value) > setAttributes({ noteCo…

【编程趣味游戏】:基于分支循环语句的猜数字、关机程序

&#x1f31f;菜鸟主页&#xff1a;晨非辰的主页 &#x1f440;学习专栏&#xff1a;《C语言学习》 &#x1f4aa;学习阶段&#xff1a;C语言方向初学者 ⏳名言欣赏&#xff1a;"编程的核心是实践&#xff0c;而非空谈" 目录 1. 游戏1--猜数字 1.1 rand函数 1.2 sr…

UE5 UI 控件切换器

文章目录分类作用属性分类 面板 作用 可以根据索引切换要显示哪个子UI&#xff0c;可以拥有多个子物体&#xff0c;但是任何时间只能显示一个 属性 在这里指定要显示的UI的索引

scikit-learn 包

文章目录scikit-learn 包核心功能模块案例其他用法**常用功能详解****(1) 分类任务示例&#xff08;SVM&#xff09;****(2) 回归任务示例&#xff08;线性回归&#xff09;****(3) 聚类任务示例&#xff08;K-Means&#xff09;****(4) 特征工程&#xff08;PCA降维&#xff0…

Excel 将数据导入到SQLServer数据库

一般系统上线前期都会导入期初数据&#xff0c;业务人员一般要求你提供一个Excel模板&#xff0c;业务人员根据要求整理数据。SQLServer管理工具是支持批量导入数据的&#xff0c;所以我们可以使用该工具导入期初。Excel格式 第一行为字段1、连接登入的数据库并且选中你需要导入…

剪枝和N皇后在后端项目中的应用

剪枝算法&#xff08;Pruning Algorithm&#xff09; 生活比喻&#xff1a;就像修剪树枝一样&#xff0c;把那些明显不会结果的枝条提前剪掉&#xff0c;节省养分。 在后端项目中的应用场景&#xff1a; 搜索优化&#xff1a;在商品搜索中&#xff0c;如果某个分类下没有符合条…

cocos 2d游戏中多边形碰撞器会触发多次,怎么解决

子弹打到敌机 一发子弹击中&#xff0c;碰撞回调多次执行 我碰撞组件原本是多边形碰撞组件 PolygonCollider2D&#xff0c;我改成盒碰撞组件BoxCollider2D 就好了 用前端的节流方式。或者loading处理逻辑。我测试过了&#xff0c;是可以 本来就是多次啊,设计上貌似就是这样的…

Kubernetes环境中GPU分配异常问题深度分析与解决方案

Kubernetes环境中GPU分配异常问题深度分析与解决方案 一、问题背景与核心矛盾 在基于Kubernetes的DeepStream应用部署中&#xff0c;GPU资源的独占性分配是保障应用性能的关键。本文将围绕一个典型的GPU分配异常问题展开分析&#xff1a;多个请求GPU的容器本应独占各自的GPU&…

Django与模板

我叫补三补四&#xff0c;很高兴见到大家&#xff0c;欢迎一起学习交流和进步今天来讲一讲视图Django与模板文件工作流程模板引擎&#xff1a;主要参与模板渲染的系统。内容源&#xff1a;输入的数据流。比较常见的有数据库、XML文件和用户请求这样的网络数据。模板&#xff1a…

日本上市IT企业|8月25日将在大连举办赴日it招聘会

株式会社GSD的核心战略伙伴贝斯株式会社&#xff0c;将于2025年8月25日在大连香格里拉大酒店商务会议室隆重举办赴日技术人才专场招聘会。本次招聘会面向全国范围内的优秀IT人才&#xff0c;旨在为贝斯株式会社东京本社长期发展招募优质的系统开发与管理人才。招聘计划&#xf…

低功耗设计双目协同画面实现光学变焦内带AI模型

低功耗设计延长续航&#xff0c;集成储能模块保障阴雨天气下的铁塔路线的安全一、智能感知与识别技术 多光谱融合监控结合可见光、红外热成像、激光补光等技术&#xff0c;实现全天候监测。例如&#xff0c;红外热成像可穿透雨雾监测山火隐患&#xff0c;激光补光技术则解决夜间…

datasophon下dolphinscheduler执行脚本出错

执行hive脚本出错&#xff1a; 错误消息&#xff1a; FAILED: RuntimeException Error loading hooks(hive.exec.post.hooks): java.lang.ClassNotFoundException: org.apache.atlas.hive.hook.HiveHookat java.net.URLClassLoader.findClass(URLClassLoader.java:387)at java.…

【Elasticsearch】安全地删除快照仓库、快照

《Elasticsearch 集群》系列&#xff0c;共包含以下文章&#xff1a; 1️⃣ 冷热集群架构2️⃣ 合适的锅炒合适的菜&#xff1a;性能与成本平衡原理公式解析3️⃣ ILM&#xff08;Index Lifecycle Management&#xff09;策略详解4️⃣ Elasticsearch 跨机房部署5️⃣ 快照与恢…

nodejs的npm

1. 什么是 npm&#xff1f; npm&#xff08;Node Package Manager&#xff09; 是 Node.js 的默认包管理工具&#xff0c;用于&#xff1a; 安装和管理依赖&#xff08;第三方库、框架等&#xff09;。运行项目脚本&#xff08;如启动服务、测试、构建等&#xff09;。发布和共…

外网访问内部私有局域网方案,解决运营商只分配内网IP不给公网IP问题

相信不少网友和我一样&#xff0c;为了实现远程控制、NAS访问、组建私有云、摄像头监控之类的需求&#xff0c;把光猫改成了桥接模式&#xff0c;并用自己的路由器拨号、进行端口了映射。本人之前一直用着没啥问题&#xff0c;不过&#xff0c;最近突然出现了无法访问的情况&am…

大模型——上下文工程 (Context Engineering) – 现代 AI 系统的架构基础

上下文工程 (Context Engineering) – 现代 AI 系统的架构基础 最近,AI大神 Andrej Karpathy 在YC的一个演讲《Software in the era of AI 》带火了一个新的概念 Context Engineering,上下文工程,LangChain也于7月2号在官网博客发表以《Context Engineering》为题目的文章(h…

PostgreSQL RelationBuildTupleDesc 分解

/** RelationBuildTupleDesc** Form the relations tuple descriptor from information in* the pg_attribute, pg_attrdef & pg_constraint system catalogs.*///从pg_attribute,pg_attrdef和pg_constraint 获取字段信息以填充relation->rd_att static void //用到的…

在 Alpine Linux 中创建虚拟机时 Cgroup 挂在失败的现象

现象&#xff1a;在 Alpine Linux 中部署 LXD或者incus 服务后&#xff0c;创建 容器或者虚拟机时提示 实例启动失败、退出代码为1&#xff1a;查询启动日志后&#xff0c;发现是 cgroup 挂载失败导致了 container 拉起失败。原因分析&#xff1a;从启动日志上看&#xff0c;是…

让UV管理一切!!!

一、遇到的问题 自己在做AI开发的时候&#xff0c;先用的conda来管理虚拟环境&#xff0c;然后使用pip freeze > reqiurments来打包相关依赖。 优点&#xff0c;conda环境可以让不同的项目有单独的虚拟环境&#xff0c;不会干扰每个项目&#xff0c;还可以多个项目共享一个…