- 可以利用Hook函数把相关的代码剥离出去(跟vue2 mixins差不多)
- mixin模式表面上看起来很安全。然而,通过合并对象来共享代码,由于它给代码增加了脆弱性,并且掩盖了推理功能的能力,因此成为一种反模式。
Composition API最聪明的部分是,它允许Vue依靠原生JavaScript中内置的保障措施来共享代码,比如将变量传递给函数和模块系统。
//导入ref,computed,用了就要导入,不用不需要导入
import { ref, computed } from "vue";
//导出一个函数
export default function () {
//汽车名称
let carName = ref("奔驰");
//汽车价格
let carPrice = ref(5000);
//修改汽车名称的方法
let updateCarName = (name) => {
carName.value = name;
};
//修改汽车价格的方法
let updateCarPrice = (price) => {
carPrice.value = price;
};
//汽车在美国的价格
let usaCarPrice = computed(() => {
return "$" + (carPrice.value / (Math.random() + 6)).toFixed(2);
});
return {
carName,
carPrice,
updateCarName,
updateCarPrice,
usaCarPrice,
};
}
在需要的组件中使用 ```json import {computed, ref} from ‘vue’ //导入hook函数useCar import useCar from ‘../hooks/useCar’
export default { name: “pageName”, setup() { return { …useCar(), //展开运算符 } } // setup() { // let obj=useCar() // console.log(obj); // return{ // …obj // } // } }; ```