image.png
如上图所示

$_ 的区别

$ 是给开发人员用的
_ 是vue自己使用的

$ 的属性都得意义

vm.$attrs

官方的解释

image.png

个人实践

当为子组件传递数据时,子组件没有使用prop接收时,该数据就为被认为未被注册,没有被注册的特性会被保存在 $attrs

示例

向子组件传递数据

  1. <template>
  2. <div id="app" >
  3. <img alt="Vue logo" src="./assets/logo.png">
  4. <!-- 向子组件传递数据 -->
  5. <HelloWorld :a="'我是被传递的数据'" msg="Welcome to Your Vue.js App"/>
  6. </div>
  7. </template>

子组件只接受特性msg 的数据

  1. <script>
  2. export default {
  3. name: 'HelloWorld',
  4. // 只接受特性msg的数据
  5. props: {
  6. msg: String
  7. },
  8. created(){
  9. console.log(this)
  10. }
  11. }
  12. </script>

打印结果中的 $attrs
image.png

vm.$options

官方的解释

image.png

个人实践

官方的解释看不懂,其实 $options 可以拿到整个Vues实例的选项

何为选项?

image.png
如上图画红线的都是Vue实例的选项

示例

  1. export default {
  2. name: 'App',
  3. components: {
  4. HelloWorld
  5. },
  6. data(){
  7. return {
  8. name:'张三'
  9. }
  10. },
  11. nmsl(){
  12. return "nmsl"
  13. },
  14. created(){
  15. // 查看保存在$options上的方法nmsl
  16. console.log(this.$options.nmsl)
  17. }
  18. }

打印结果
image.png