默认是 get
get 当 props.title 改变时触发
set 当 visible 被改变时触发 参数 visible 是当前值

const title = computed(() => props.title);
  const visible = computed({
    get() {
      return props.dialogVisible;
    set(visible: boolean) {
      emit('update:dialogVisible', visible);
  });

利用 computed 可以解决 嵌套 v-model 例:

// 在子组件中
<el-dialog v-model="dialogVisible"></el-dialog>
const dialogVisible = computed({
  get() {
    return props.dialogVisible;
  set(visible: boolean) {
    emit('update:dialogVisible', visible);
});
// 父组件
<Dialog v-model:dialogVisible="dialogVisible"  />

计算属性传参使用

<div class="tag" :class="color(item.status)"></div>
const color = computed(() => (status) => {
  if (status === 1) return "pedding";
  else if (status === 2) return "end";
});
                                    第一次使用VUE3时,项目中使用的时兼容VUE2引入setup函数的写法,上手很快也容易理解。直到发现官方的源码展示都用了全新的单文件组件写法,意识到这个才是主流。这篇文章记录下学习过程。
post传值后台收不到 需要用qs转换一下数据
 post('http://localhost:8080/api', qs.stringify(this.addCategoryName))
img动态路径
:src="  "
8080端口下找的是public下的文件,所以找不到
v-for
          style="width:100
                                    对象中有一个value属性,如果需要对数据进行操作,需要.value进行操作,一般用来定义一个基本类型的响应式数据html模版中是不需要调用.value操作的const proxy = reactive(obj): 接收一个普通对象,然后返回该普通对象的响应式代理器响应式转换是‘深层的’:会影响对象内部所有嵌套的属性内部基于ES6的Proxy实现,通过代理对象操作源对象内部数据都是响应式的。