当前位置: 首页 > news >正文

wordpress 资源站模板青州市建设局网站

wordpress 资源站模板,青州市建设局网站,营销策略案例,知名网站都是什么系统做的一、基本搭建 项目搭建 使用 最新的 Vue3 TS Vite项目 执行命令 (本项目采用如下方式) npm create vitelatest my-vite-app --template vue-ts或者 运行项目 npm install npm run dev项目搭建初始化目录 新搭建的项目可能会遇到个问题&#xf…

一、基本搭建

项目搭建

使用 最新的 Vue3 + TS + Vite项目

执行命令

(本项目采用如下方式)

npm create vite@latest my-vite-app --template vue-ts

或者
在这里插入图片描述

运行项目

npm install
npm run dev

项目搭建初始化目录

在这里插入图片描述

新搭建的项目可能会遇到个问题,比如

在这里插入图片描述
这种情况代码本身没有问题,程序能正常执行

但是编辑器却会出现提示,这个问题是语法提示插件的问题,vue2.x之前都是使用vetur插件,vue3.x之后更换成volar插件,可以更好的支持TS,以及有类型推导
所以,安装了这个插件

在这里插入图片描述
之后,删除app.vue中的其它无用代码,最终页面如下:
在这里插入图片描述

二、vue3项目main.js文件发生的变化

在这里插入图片描述
核心代码:createApp(App).mount(‘#app’) = createApp(根组件).mount(‘public/index.html中的div容器’)

vue3.0中按需导出了一个createApp

全局定义属性值(axios为例)

vue2 的写法

main.js 中

import Vue from 'vue'
import App from './App.vue'
import axios from '@/utils/request.js'
Vue.prototype.$axios = axios
new Vue({render: h => h(App),
}).$mount('#app')// 或者
import api from './api' // 导入api接口
Vue.prototype.$api = api
Vue.prototype.$abc = 111

页面上

this.$api.user...
let abc = this.$abc   //111

vue3写法

main.js 中

globalProperties官方提供的在全局挂载方法和属性,代替了Vue2中的Vue.prototype

const app = createApp(App)
//全局配置
app.config.globalProperties.foo = 'bar'

页面上

// mounted中 (和2.0中一样)但是3.0中很少使用mounted
let abc = this.foo //bar

三、vue3中的app单文件不再强制要求必须有根元素

<template><div><a href="https://vuejs.org/" target="_blank"><img src="./assets/vue.svg" class="logo vue" alt="Vue logo" /></a></div><HelloWorld msg="Vite + Vue" />
</template>

四、vue3编写组件的几种方式

1.选项式写法

<template><div>{{num3}}</div>
</template>
<script>
import { ref } from "vue";
export default {props: {testProps: {type: Number,default: () => {return 888;}}},setup(props, context) {console.log("setup的props", props);console.log("testProps", props.testProps);console.log("setup的context", context);const num3 = ref(1);return { num3 };},data() {return {};},methods: {},mounted() {}
};
</script>

2.组合式写法: setup vue3的语法糖

<template><div>{{num}}</div>
</template>
<script setup>
import { ref } from "vue";
const num = ref(123);
</script>

3.JSX写法:使用defineComponent来书写

<template><div><div> {{ count }}</div><button @click="addcount">点击加一</button></div>
</template>
<script>
import { defineComponent } from "vue";
export default defineComponent({data() {return { count: 1 };},methods: {addcount() {this.count++;}}
});
</script>

五、Vue 组合式 API 生命周期钩子

在这里插入图片描述
因为 setup 是围绕 beforeCreate 和 created 生命周期钩子运行的,所以不需要显式地定义它们。换句话说,在这些钩子中编写的任何代码都应该直接在 setup 函数中编写。

这些函数接受一个回调函数,当钩子被组件调用时将会被执行:
在 Vue3 组合 API 中实现生命周期钩子函数可以在 setup() 函数中使用带有 on 前缀的函数:

import { onBeforeMount, onMounted } from 'vue';
export default {setup() {onBeforeMount(() => {console.log('component beforeMount!');})onMounted(() => {console.log('component mounted!');// 组件被挂载时,我们用 onMounted 钩子记录一些消息})}
};

六、定义方法

const handleOk  = () => {}
function handleOk() {}

七、ref:创建一个响应式的数据对象

返回值是一个对象,且只包含一个 .value 属性。
在 setup() 函数内,由 ref() 创建的响应式数据返回的是对象,所以需要用 .value 来访问。

第一种写法

<script setup lang="ts">
import { ref } from 'vue'
// 定义简单的数据
const dataTest = ref(111)
console.log('dataTest', dataTest)
console.log('dataTest-value', dataTest.value)
</script>

打印结果如下:
在这里插入图片描述

在Vue3中数据代理可以使用单一数据了,并且也改进了数据代理的方式,使用的是Proxy完成了数据代理, Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找、赋值、枚举、函数调用等)。

即使是Vue3中使用的Proxy的代理方式也不能进行普通数据的代理,所以当调用Ref的时候其实仍然创建了一个Proxy对象,并且Vue帮你给这个对象了一个value属性,属性值就是你定义的内容,改变的时候监视的改变依然是通过Proxy的数据劫持来进行响应式的处理,而模板中()使用的时候Vue会默认调用对应的value属性,从而完成模板中的内容的直接调用

例如:

<template><h1>{{ msg }}</h1><div class="card"><button type="button" @click="count++">count is {{ count }}</button><p>我是dataTest数据:  {{dataTest}} </p></div>
</template>

展示效果为:

在这里插入图片描述

第二种写法

<script setup lang="ts">
import { ref } from 'vue'
const testFn = () => {// 定义简单数据const num = ref(1233);// 定义复杂数据const num2 = ref({ b: "我是num2中的b", c: "我是num3" });console.log(num2.value); //Proxy {a: '我是num2'}return {numVal: num.value,num2Val: num2.value,num2Valb: num2.value.b,};
}
console.log('testFn', testFn())
</script>

在这里插入图片描述

八、reactive 创建响应式复杂数据数据

reactive就是用来完善ref的获取时直接省去.value,只能定义复杂数据类型的数据

<script setup lang="ts">
import { ref, reactive } from 'vue'// 定义对象
const reactiveTestObj = reactive({name: '章三',age: 18
})
// 定义数组
const reactiveTestArr = reactive([{ text: 'javascript'},{ text: 'java'},{ text: 'c#'}
])
const reactiveFnTest = () => {return {reactiveTestObj, // reactiveTestObj Proxy {name: '章三', age: 18}reactiveTestArr // reactiveTestArr Proxy {0:{...},1:{...},2:{...}}}
}
console.log('reactiveFnTest', reactiveFnTest())
</script>

在这里插入图片描述

好了,vue3基本认识就先介绍到这里吧,下期针对 ref 和 reactive 做个比较,关于vue3 的父子通信也会在之后的链接中更新哦~,本次参考链接 点击查看
http://www.yayakq.cn/news/193749/

相关文章:

  • 找素材的网站公司网站建设需要哪些内容
  • 佛山网站制作流程wordpress使用图床
  • 网站开发教程图文淘宝标题优化网站
  • 做网站运营很累吧淮北市矿务局工程建设公司网站
  • 三水建设网站网页设计学校哪个好
  • 阿里云网站 模板建设群晖做网站
  • 做电商搜素材网站都是什么河北邢台最新消息今天
  • 西部数码网站管理助手安装长沙网站关键词排名推广公司
  • 甘南北京网站建设网站查询站长工具
  • 企业建设网站是网络营销吗杭州哪家网站建设公司好
  • 牛牛网站开发帮你省网站怎么做
  • 中国风电商网站建设医院网站建设官网
  • 学校网站建设工作内容seo销售
  • 国外小型网站网站网页设计代码
  • wordpress 在线编辑甘肃网站seo技术厂家
  • 山东建设执业资格注册中心网站如何发布网站教程
  • 编程自学网站seo优化运营
  • 公司网站想自己做网站开发外包哪家好
  • 北京顺义做网站常用的网站建设技术包括
  • 中国网站开发.netcms网站管理系统
  • aspnet网站开发教程数据库福建银瑞建设工程有限公司网站
  • 网站标签系统新品发布会海报
  • 做logo的ppt模板下载网站网页制作基础教程书籍
  • 河南省和建设厅网站怎么做网页截图
  • 湖州市建设中心网站吴江高端网站建设
  • 电子商务网站建设开发文档网站好友邀请链接生成 php
  • 提供营销型网站设计1企业网站案例
  • 手机怎样使用域名访问网站网站网站建设企业
  • 金华网站制作建设wordpress主题 微博
  • 品牌网站建设解决wordpress登录地址修改