前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
开发者导航

Vue核心梳理

首页
2019-10-06 18:10:32
Front-End
Vue

# 一、组件的核心概念-属性props几种写法

我们的开发都是围绕着options来的

<template>
  <div>
    name: {{ name }}
    <br />
    type: {{ type }}
    <br />
    list: {{ list }}
    <br />
    isVisible: {{ isVisible }}
    <br />
    <button @click="handleClick">change type</button>
  </div>
</template>

<script>
export default {
  name: "PropsDemo",
  // inheritAttrs: false,
  // 这种写法不利于后期维护
  // props: ['name', 'type', 'list', 'isVisible'],
  props: {
    name: String,
    type: {
      validator: function(value) {
        // 这个值必须匹配下列字符串中的一个
        return ["success", "warning", "danger"].includes(value);
      }
    },
    list: {
      type: Array,
      // 对象或数组默认值必须从一个工厂函数获取
      default: () => []
    },
    isVisible: {
      type: Boolean,
      default: false
    },
    onChange: {
      type: Function,
      default: () => {}
    }
  },
  methods: {
    handleClick() {
      // 不要这么做、不要这么做、不要这么做
      // this.type = "warning";

      // 可以,还可以更好
      this.onChange(this.type === "success" ? "warning" : "success");
    }
  }
};
</script>
@前端进阶之旅: 代码已经复制到剪贴板
// 用法
<Props
  name="Hello Vue!" // 原生属性
  :type="type"
  :is-visible="false"
  :on-change="handlePropChange"
  title="属性Demo" // 原生属性
  class="t
fe
  • 一、组件的核心概念-属性props几种写法
  • 二、组件的核心概念-事件
  • 三、组件的核心概念-插槽
  • 四、双向绑定和单项数据流并不冲突
  • 五、如何触发组件的更新
  • 六、合理应用计算属性和监听器
    • 6.1 计算属性Computed
    • 6.2 监听watcher
    • 6.3 computed vs watcher
  • 七、生命周期的应用场景和函数式组件
    • 7.1 生命周期
    • 7.2 函数式组件
  • 八、Vue指令
    • 8.1 内置指令
    • 8.2 自定义指令
  • 九、template和jsx
    • 9.1 JSX VS template
    • 9.2 以下是jsx写法
  • 十、为什么需要vuex
  • 十一、vuex核心概念和底层原理
    • 11.1 核心概念
    • 11.2 底层原理
  • 十二、vuex最佳实践
    • 12.1 核心概念
    • 12.2 使用常量代替Mutation事件类型
    • 12.3 命名空间
    • 12.4 实践例子
  • 十三、vue-router使用场景
    • 13.1 解决的问题
    • 13.2 使用方式
    • 13.3 例子
  • 十四、路由的类型及底层原理

← Ionic之iOS打包流程React Native之Icon/启动图设置 →