ASCII码 ASCII码

TP vue组合api-绑定事件\组件\通信\路由(五)

发布于:2022-05-15 13:13:16  栏目:技术文档

setup() 函数是vue3中专门新增的方法,可以理解为 Composition Api 的入口

  1. <template>
  2. <div>
  3. <nav>
  4. <router-link to="/">Home</router-link> |
  5. <router-link to="/about">About</router-link> |
  6. <router-link to="/test?id=123&name=zolo">TestContent</router-link>
  7. </nav>
  8. <router-view />
  9. <div>{{ data.num }}</div>
  10. <div>{{ data.name }}</div>
  11. <button @click="add">addMe</button>
  12. <button @click="resetnum">resetnum</button>
  13. <p>{{ zolo }}</p>
  14. <div>
  15. <test-com msg="我是父组件传过来的" title="我是title,看看能不能接收">
  16. <button>我是插槽数据1</button>
  17. <button>我是插槽数据2</button>
  18. </test-com>
  19. </div>
  20. </div>
  21. </template>
  22. <script>
  23. // $route 获取当前路由信息
  24. // $router 获取当前路由器,分发器:可以进行页面跳转
  25. import { reactive, computed, ref, toRefs, readonly, isRef, watch,onBeforeMount, onMounted } from "vue";
  26. import testComVue from "./components/testCom.vue";
  27. import { useRoute, useRouter } from "vue-router";
  28. export default {
  29. components: {
  30. testCom: testComVue,
  31. },
  32. setup() {
  33. let route = useRoute();
  34. let router = useRouter();
  35. console.log(route.params);
  36. console.log(route.query);
  37. router.push({
  38. path:'/about',
  39. query:{
  40. name:'test',
  41. id:888,
  42. }
  43. });
  44. onBeforeMount(()=>{
  45. console.log(onBeforeMount);
  46. });
  47. onMounted(()=>{
  48. console.log(onMounted);
  49. });
  50. let zolo = ref(999);
  51. let data = reactive({
  52. num: 100,
  53. name: "hellozolo",
  54. });
  55. // let readdata = readonly(data);
  56. // readdata.num=999999;
  57. console.log("是否是可响应数据" + isRef(zolo));
  58. console.log("是否是可响应数据" + isRef(data));
  59. function add() {
  60. zolo.value--;
  61. data.num++;
  62. console.log(data.num);
  63. }
  64. function resetnum() {
  65. data.num = 100;
  66. zolo.value = 999;
  67. }
  68. //监听数据 新值,老值
  69. // watch(zolo, (a, b) => {
  70. // console.log(zolo);
  71. // console.log(a);
  72. // console.log(b);
  73. // });
  74. watch([zolo,()=>data.num], ([a1,b1],[a2,b2]) => {
  75. console.log('zolo-new:'+a1);
  76. console.log('zolo-old:'+a2);
  77. console.log('data-new:');
  78. console.log(b1);
  79. console.log('data-old:');
  80. console.log(b2);
  81. });
  82. return {
  83. zolo,
  84. data,
  85. add,
  86. resetnum,
  87. };
  88. },
  89. };
  90. </script>
相关推荐
阅读 +