补充vue组件
This commit is contained in:
parent
33c8ca3677
commit
4662ac60e1
@ -8,16 +8,21 @@ import HelloWorld from './components/HelloWorld.vue'
|
|||||||
<img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
|
<img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
|
||||||
|
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<HelloWorld msg="You did it!" />
|
<HelloWorld msg="You did it, this is my arg!" />
|
||||||
|
<!-- <component></component> -->
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
<RouterLink to="/">Home</RouterLink>
|
<RouterLink to="/">Home</RouterLink>
|
||||||
<RouterLink to="/about">About</RouterLink>
|
<RouterLink to="/about">About</RouterLink>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<RouterView />
|
<RouterView v-slot="{ Component }" >
|
||||||
|
<KeepAlive>
|
||||||
|
<component :is="Component" />
|
||||||
|
</KeepAlive>
|
||||||
|
</RouterView>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
defineProps({
|
// func XXXX(msg: string)
|
||||||
|
const pros = defineProps({
|
||||||
msg: {
|
msg: {
|
||||||
type: String,
|
type: String,
|
||||||
required: true,
|
required: true,
|
||||||
@ -7,6 +8,7 @@ defineProps({
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -5,10 +5,13 @@ import { createPinia } from 'pinia'
|
|||||||
|
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
|
// import HelloWorld from './components/HelloWorld.vue'
|
||||||
|
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
|
|
||||||
app.use(createPinia())
|
app.use(createPinia())
|
||||||
app.use(router)
|
app.use(router)
|
||||||
|
// app.component('HelloWorld', HelloWorld)
|
||||||
|
|
||||||
|
|
||||||
app.mount('#app')
|
app.mount('#app')
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<!-- person.name -> element Set attri: v-bind -->
|
<!-- person.name -> element Set attri: v-bind -->
|
||||||
<!-- 为元素绑定动态属性 -->
|
<!-- 为元素绑定动态属性 -->
|
||||||
<!-- v-bind -> : -->
|
<!-- v-bind -> : -->
|
||||||
<span name="静态变量" :id="person.name">{{ person.name }}, {{ person.age + 1 }}</span>
|
<span name="静态变量" :id="person.name">{{ person.name }}, {{ person.age }}</span>
|
||||||
<hr>
|
<hr>
|
||||||
<button v-if="true" @click="buttonClickHandler">确定</button>
|
<button v-if="true" @click="buttonClickHandler">确定</button>
|
||||||
<hr>
|
<hr>
|
||||||
@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
||||||
import { onBeforeMount, onBeforeUnmount, onBeforeUpdate, onMounted, onUnmounted, onUpdated, reactive, ref } from 'vue';
|
import { nextTick, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onMounted, onUnmounted, onUpdated, reactive, ref, watch } from 'vue';
|
||||||
|
|
||||||
// wrap 'test' --> {value: 'test'}
|
// wrap 'test' --> {value: 'test'}
|
||||||
// model ---> view
|
// model ---> view
|
||||||
@ -43,11 +43,31 @@ console.log(pageName.value)
|
|||||||
const inputData = ref('test input')
|
const inputData = ref('test input')
|
||||||
console.log(inputData)
|
console.log(inputData)
|
||||||
|
|
||||||
|
//
|
||||||
|
watch(inputData, (v, ov) => {
|
||||||
|
console.log(v, ov)
|
||||||
|
})
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
console.log("onBeforeMount")
|
console.log("onBeforeMount")
|
||||||
})
|
})
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log("onMounted")
|
console.log("onMounted")
|
||||||
|
console.log(person.name, person.age)
|
||||||
|
|
||||||
|
// 立即修改变量的值
|
||||||
|
person.age = 28
|
||||||
|
// 这个效果,不会立即更新到 UI上面
|
||||||
|
// 立即从界面上获取 这个元素
|
||||||
|
// 当前获取的元素的值是多少?
|
||||||
|
// 18 ? 28
|
||||||
|
// 等这个 这次更新 同步到界面上后,在访问UI获取
|
||||||
|
// nextTick 等下 更新对联 执行后,才执行你的函数
|
||||||
|
nextTick(() => {
|
||||||
|
console.log(document.getElementById("张三").innerText)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
// console.log(getCurrentInstance())
|
// console.log(getCurrentInstance())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
# Vue3
|
# Vue3
|
||||||
|
|
||||||
https://gitee.com/infraboard/go-course/blob/master/day20/vue-base.md#%E6%A8%A1%E6%9D%BF%E8%AF%AD%E6%B3%95
|
+ 基础原理: https://gitee.com/infraboard/go-course/blob/master/day20/vue3.md
|
||||||
|
+ 基础用法: https://gitee.com/infraboard/go-course/blob/master/day20/vue3-base.md
|
||||||
|
+ Vue组件: https://gitee.com/infraboard/go-course/blob/master/day20/vue3-componet.md
|
||||||
|
|
||||||
如何切换国内源: https://gitee.com/infraboard/go-course/blob/master/extra/devcloud/setup.md
|
如何切换国内源: https://gitee.com/infraboard/go-course/blob/master/extra/devcloud/setup.md
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user