vuejs中prop什么意思

在vuejs中,prop是父组件用来传递数据的一个自定义属性。子组件需要显示的地用props选项声明“prop”;当使用非字符串模板时,prop的名字形式会从camelCase转为kebab-case(短横线隔开)。

vuejs中prop什么意思

本教程操作环境:windows7系统、vue2.9.6版,DELL G3电脑。

一、使用Prop传递数据

组件实例的作用域是孤立的。这意味着不能并且不应该在子组件的模板内直接引用父组件的数据。可以使用props把数据传给子组件。
prop是父组件用来传递数据的一个自定义属性。子组件需要显示的地用props选项声明“prop”

Vue.component('child',{    props:['message'],    template:'{{ message }}'})

登录后复制

然后向它传入一个普通字符串:


登录后复制

结果:

立即学习“前端免费学习笔记(深入)”;

hello!

登录后复制

二、camelCase vs.kebab-case

html不区分大小写。当使用非字符串模板时,prop的名字形式会从camelCase转为kebab-case(短横线隔开):

//camelCaseVue.component('child',{    props:['myMessage'],    template:'{{ message }}'})

登录后复制

//kebab-case

登录后复制

再次说明,如果你是用字符串模板,不用在意这些限制。

三、动态Prop

类似于用v-bind绑定HTML特性到一个表达式,也可以用v-bind动态绑定props的值到父组件的数据中。每当父组件的数据变化时,该变化也会传导给子组件。

        
    

登录后复制

使用v-bind的缩写语法通常更简单:


登录后复制

四、字面量语法vs动态语法

因为它是一个字面prop ,它的值以字符串 “1” 而不是以实际的数字传下去。如果想传递一个实际的 JavaScript 数字,需要使用 v-bind ,从而让它的值被当作 JavaScript 表达式计算:

五、单项数据流

prop是单项绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。这是为了防止子组件无意修改了父组件的状态——这会让应用的数据流难以理解。同时,这也很好理解,父组件是子组件的高度抽象,表示子组件的共有部分,一个组件的数据改变并不会改变其抽象,然而其抽象的改变却代表着所有子组件的改变。
另外,每次组渐渐更新时,子组件的所有prop都会更新为最新值。这意味着你不应该在子组件内部改变prop。如果你这么做了,Vue会在控制台给出警告。
通常有两种改变prop的情况:

1.prop作为初始值传入,子组件之后只是将它的初始值作为本地数据的初始值使用;

2.prop作为需要被转变的原始值传入。

更确切地说这两种情况是:
a.定义一个局部data属性,并将prop的初始值作为局部数据的初始值。

props: [‘initialCounter’],  data: function () {  return { counter: this.initialCounter}  }

登录后复制

    b.定义一个 computed 属性,此属性从 prop 的值计算得出。   ```    props: ['size'],    computed: {        normalizedSize: function () {         return this.size.trim().toLowerCase()     }    }

登录后复制

六、Prop验证

组件可以为 props 指定验证要求。如果未指定验证要求,Vue 会发出警告。当组件给其他人使用时这很有用。
prop 是一个对象而不是字符串数组时,它包含验证要求:

Vue.component('example', {  props: {    // 基础类型检测 (`null` 意思是任何类型都可以)    propA: Number,    // 多种类型    propB: [String, Number],    // 必传且是字符串    propC: {      type: String,      required: true    },    // 数字,有默认值    propD: {      type: Number,      default: 100    },    // 数组/对象的默认值应当由一个工厂函数返回    propE: {      type: Object,      default: function () {        return { message: 'hello' }      }    },    // 自定义验证函数    propF: {      validator: function (value) {        return value > 10      }    }  }})

登录后复制

type可以是下面的原生构造器: 

* String 

* Number 

* Boolean 

* Function 

* Object 

* Array

type也可以是一个自定义构造器,使用instanceof检测。当prop验证失败了,如果使用的是开发版本会抛出一条警告。

相关推荐:《vue.js教程》

以上就是vuejs中prop什么意思的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3019585.html

(0)
上一篇 2025年3月13日 05:29:17
下一篇 2025年2月25日 10:36:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • vuejs模板什么用

    vuejs模板从根本上规定了一个系统应当以怎样的交互形式和UI风格面向使用者,而遵循这套模板进行设计和完善功能;其作用为:1、担负XSS的防范;2、支持片段的复用;3、支持数据输出是的处理;4、支持动态数据;5、与异步流程严密结合。 本教程…

    2025年3月13日
    200
  • vuejs的两个核心是什么

    vuejs的两个核心是数据驱动和组件系统。数据驱动也就是数据的双向绑定,用于保证数据和视图的一致性。组件系统能够把页面抽象成多个相对独立的模块;可以实现代码重用,提高开发效率和代码质量,便于代码维护。 本教程操作环境:windows7系统、…

    2025年3月13日
    200
  • vuejs怎么修改背景色

    vuejs修改背景色的方法:1、在index.html中引入公用的css样式;2、通过添加“beforeCreate () {…}”代码修改单个组件的背景色即可。 本文操作环境:windows7系统、vue2.5.17版、Del…

    2025年3月13日
    200
  • vuejs怎么设置title

    vuejs设置title的方法:1、通过npm install安装“vue-wechat-title”;2、在main.js中引入“vue-wechat-title”;3、在index.js中给每个路由添加title即可。 本文操作环境:w…

    2025年3月13日
    200
  • vuejs中项目名怎么更改

    更改方法:1、打开项目根目录下“package.json”文件,将“name”项的值改成新的项目名;2、删除“node_modules”文件夹;3、在终端中进入项目文件夹,执行“npm install”和“npm run dev”命令即可。…

    2025年3月13日
    200
  • vuejs怎么引入css

    vuejs引入css的方法:1、在“app.vue”中的“”下直接引入对应的路径;2、将“@import”改成“”引入外部样式。 本文操作环境:Windows7系统、vue2.9.6版,DELL G3电脑。 vue.js引入外部CSS样式?…

    2025年3月13日
    200
  • vuejs怎么将毫秒转成日期

    vuejs将毫秒转成日期的方法:1、定义过滤器“filters.js”;2、在所用之处引入“filters.js”;3、通过“formatDate(data,’yyyy-MM-dd’);”进行转换即可。 本文操作环境…

    2025年3月13日 编程技术
    200
  • vuejs中axios用法是什么

    vuejs中axios的使用方法:1、安装axios;2、在main.js页面引用axios;3、通过“created(){this.$axios({method:’post’,url:’api&#821…

    2025年3月13日
    200
  • vuejs slot 怎么使用

    vuejs slot的使用方法:1、在子组件内放一些DOM;2、通过slot实现显示或者隐藏DOM,代码如“new Vue({el: “#app”,data: {},components:{children:{&#8…

    2025年3月13日 编程技术
    200
  • vuejs怎么改变css

    vuejs改变css的方法:1、使用“v-bind:class”或者“v-bind:style”指令修改css样式;2、直接通过操作dom来对css样式进行更改。 本文操作环境:Windows7系统、vue2.9.6版,DELL G3电脑。…

    2025年3月13日
    200

发表回复

登录后才能评论