Vue父子组件静态数据传递疑问:为何未使用v-bind指令?
关于Vue父子组件props传递的疑问解答
你提到的两种写法都是正确的,核心区别在于传递的是静态字符串值还是动态数据:
直接写
msg="Welcome to Your Vue.js App"的场景:
这种写法是传递静态固定的字符串,不需要v-bind指令。CLI生成的示例里,子组件的msgprops定义为String类型,刚好匹配这种静态字符串传递,所以完全没问题。使用
v-bind:msg="Welcome to Your Vue.js App"的场景:
如果你给v-bind传的是带引号的字符串,其实没必要——因为v-bind的作用是解析Vue表达式,比如传递父组件的变量、计算属性,或者非字符串类型的值(数字、布尔值、数组等)时才必须用它。举几个正确的动态绑定例子:<!-- 传递父组件的变量 --> <HelloWorld :msg="parentWelcomeMsg" /> <!-- 传递数字(不用v-bind的话会变成字符串"100") --> <HelloWorld :msg="100" /> <!-- 传递布尔值 --> <HelloWorld :msg="true" />
简单总结:静态固定字符串直接写属性名;动态数据(变量、表达式、非字符串类型)才需要v-bind(或简写:)。CLI生成的示例属于前者,写法完全合规。
内容的提问来源于stack exchange,提问作者abs hwiw
相关产品推荐
相关产品推荐

