Vue3 属性使用

JiHua
2023-06-29
4

Vue3 属性使用方法

<script setup lang="ts">
// 引入模块
import { ref, reactive, onMounted, watch, computed } from "vue";
import { useArticleDataStore } from '@/stores/ArticleClass'
import { useRouter } from "vue-router"

// 数据定义 
const store = useArticleDataStore()
let ArticleData = reactive({ data: store.getStoreArticleListData })
let router = useRouter()
let isDetail = ref(false)
let total = ref(store.getTotalNum)

// 在组件挂载时获取文章列表数据
onMounted(() => {
  if (store.getStoreArticleListData.length === 0) {
    GetArticleListData(1)
  }
})
// 监听属性 使用,目前示例为监听多个目标值的改变
watch(
  [
    () => store.getStoreArticleListData,
    () => store.getTotalNum
  ], // 新值                        旧值
  ([newArticleData, newTotalNum], [oldArticleData, oldTotalNum]) => {
    if (!isSameData(ArticleData.data, newArticleData)) {
      ArticleData.data = newArticleData;
    }
    total.value = newTotalNum
  }
);
// 计算属性 Vue3的计算属性不像Vue2 那样   { 原值 | 计算属性(原值)  } 这样了
const CountDeleteCode = computed(() => {
  return (state: string, is_delete: string) => {
    return parseInt(state) + parseInt(is_delete) === 0 ? '已发布正常' : '已删除/驳回'
  }
})
</script>
/*
*  当数据定义为ref / reactive时 数据才是动态的
*  模块需要单独引入,当然也有自动引入
*  使用路由需要 先定义 userouter 然后才能使用router

*Vue3语法糖里无法使用this访问,这也是编写习惯的改变,this无法访问到Vue实例 

 

标签:Vue3 属性使用、Vue3、属性、使用方法