网站建设空间域名是什么意思,阿里巴巴网站建设分析,谁有人和兽做的网站?,做任务送科比网站全局创建
app.use(createPina()).mount
全局方法
通过app.config.globalProperties.xxx可以创建 这里我们写了一个字符串翻转的全局方法 main.js里面添加一个全局方法 不要忘了加$ 否则会报错
// #ifdef VUE3
//导入创建app
import { createSSRApp } from vue
//导入创建ap…全局创建
app.use(createPina()).mount
全局方法
通过app.config.globalProperties.xxx可以创建 这里我们写了一个字符串翻转的全局方法 main.js里面添加一个全局方法 不要忘了加$ 否则会报错
// #ifdef VUE3
//导入创建app
import { createSSRApp } from vue
//导入创建app的方法
export function createApp() {//创建app的实例const app createSSRApp(App)//自己添加一个全局方法app.config.globalProperties.$reversefunction(str){return str.split().reverse().join()}return {app}
}
// #endifindex.vue里面使用 定义字符串msg,以及方法setMsg并返回
templateviewviewsetUp/viewbutton clicksetNum(num5){{num}}/buttonbutton typewarn clicksetMsg($reverse(msg)){{msg}}/button/view
/template
script// 导入ref响应数据import {ref} from vueexport default {setup(props,context){console.log(props,context)// 父组件传入的参数context上下文 attrs属性emit发送事件方法 expose导出 slots插槽// setup相当于created生命周期// 定义num默认值是 5const num ref(5);// 定义更新num的方法const setNum (v){num.valuev;}// 返回num与setNum// 定义msgconst msg ref(你好msg)const setMsg vmsg.valuev;return {num,setNum,msg,setMsg}}}/scriptsetup组合式api
导入ref响应数据 import {ref} from ‘vue’ setup相当于created生命周期
export default{
setup(props,context){
var numref(5)
return {num}
}
script setup/script响应式核心
ref 定义响应是值类型方法 reactive 引用类型 computed 从现有数据计算新的数据 两种方式都可以实现
const dncomputed(()n.value*2)
const feecomputed({get(){if(n.value1){return 7}else{var totaln.value*52return total}},set(v){n.valueMath.floor((v-2)/5)}})watch监听数据的变化
const stopwatch(list,(val,oldVal){uni.setStorageSync(list,list)},{deep:true})watchEffect监听副作用只要被这个方法引用的数据发送变化都会触发
watchEffect((){uni.setStorageSync(list,list)uni.setStorageSync(n,n.value)},readyonly只读常用与优化
生命周期带on
可以简记为 挂载前后 更新前后 卸载前后 激活前后 setup中的生命周期没有beforeCreate与created setup的生命周期需要加on前缀 1、setup() : 开始创建组件之前在 beforeCreate 和 created 之前执行创建的是 data 和 method
2、onBeforeMount() : 组件挂载到节点上之前执行的函数
3、onMounted() : 组件挂载完成后执行的函数
4、onBeforeUpdate(): 组件更新之前执行的函数
5、onUpdated(): 组件更新完成之后执行的函数
6、onBeforeUnmount(): 组件卸载之前执行的函数
7、onUnmounted(): 组件卸载完成后执行的函数
8、onActivated(): 被包含在 中的组件会多出两个生命周期钩子函数被激活时执行
9、onDeactivated(): 比如从 A 组件切换到 B 组件A 组件消失时执行
10、onErrorCaptured(): 当捕获一个来自子孙组件的异常时激活钩子函数。
依赖注入provide inject
在父子组件传递数据时通常使用的是 props 和 emit父传子时使用的是 props如果是父组件传孙组件时就需要先传给子组件子组件再传给孙组件如果多个子组件或多个孙组件使用时就需要传很多次会很麻烦。
像这种情况可以使用 provide 和 inject 解决这种问题不论组件嵌套多深父组件都可以为所有子组件或孙组件提供数据父组件使用 provide 提供数据子组件或孙组件 inject 注入数据。同时兄弟组件之间传值更方便。
组件相关 script setup 中必须使用 defineProps 和 defineEmits API 来声明 props 和 emits 它们具备完整的类型推断并且在 script setup 中是直接可用的
defineProps 定义props
const props {
modelvalue:(type:[Number.Stringl.defaut:)
maxLength:{type:Number,default:0}
}defineEmit 子组件向父组件事件传递
const emits defineEmit([update:modelValue])
emits(update:modelValue ,content.value)defineExpose暴露一个方法让父组件可以通过ref调用 通过ref的方式调用子组件的clear方法 子组件必须暴露clear 父组件才能调用
v-model简写方式
:modelValuemsg
update:modelValuemsg$event