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

网络营销外包收费吗seo查询外链

网络营销外包收费吗,seo查询外链,如何重新打开wordpress,福田祥菱m1图片及报价目录 一、安装Node.js 二、创建Vue3工程 三、用VSCode打开 四、源代码目录src 五、入门案例——手写src 六、测试案例 七、ref和reactive的区别 一、安装Node.js 下载20.10.0 LTS版本 https://nodejs.org/en 使用node命令检验安装是否成功 node 二、创建Vue3工程 在…

目录

一、安装Node.js

二、创建Vue3工程

三、用VSCode打开

四、源代码目录src

五、入门案例——手写src

六、测试案例

七、ref和reactive的区别


一、安装Node.js

下载20.10.0 LTS版本 

https://nodejs.org/en

使用node命令检验安装是否成功

node

二、创建Vue3工程

在桌面右键打开终端,输入创建命令。

npm create vue@latest

输入项目名称,用小写字母和数字,用 _ - 分隔。

接下来就是一些选项配置,这里只选使用TypeScript语法。

到这里Vue3项目就创建好了,可以在桌面上找到。

三、用VSCode打开

使用VSCode打开刚才建好的项目

这里会推荐两个官方插件,点击安装即可。

 

打开env.d.ts文件,发现报错,原因是没有下载依赖。

打开终端,使用npm i命令下载依赖。

npm i

新增了一个node_modules目录

下载好后重新打开VSCode

项目中的index.html文件是入口文件,类似于SpringBoot项目中的启动类。

我们先将index.html文件里面的内容全部注释,然后自己简单的写一个html页面。

打开终端,使用npm run dev命令启动项目。

npm run dev

按住Ctrl键然后单击http://localhost:5173/打开

四、源代码目录src

和后端项目一样,src目录用于存放源代码。

在入口文件index.html中,引入了src目录下的main.ts文件。

main.ts文件内容

其中import的作用就是导入,类似于Java中的导包。

import './assets/main.css'import { createApp } from 'vue'
import App from './App.vue'createApp(App).mount('#app')

导入样式 

import './assets/main.css'

从vue中导入createApp,然后下面就能用createApp了。

import { createApp } from 'vue'

导入App组件,App组件是根组件,我们写的其他组件放到根组件中。

import App from './App.vue'

用根组件App创建应用,挂载到一个id为app的容器中。

createApp(App).mount('#app')

这个id为app的容器就在index.html中

components目录存放我们自己写的组件,这些组件要引入到App.vue根组件中,assets目录里面是一些样式。

srcmain.tsApp.vue是必不可少的

五、入门案例——手写src

创建src目录,新建main.ts和App.vue

main.ts

// 引入createApp用于创建应用
import { createApp } from 'vue'
// 引入App根组件
import App from './App.vue'createApp(App).mount('#app')

.vue文件中可以写什么呢?

<template><!-- html -->
</template><script lang="ts">// JS或TS
</script><style>/* 样式 */
</style>

Person.vue

我们在src中创建components目录,存放我们自己写的组件Person.vue,然后引入到App.vue根组件中。

<template><div class="app"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showNumber">查看联系方式</button></div>
</template><script lang="ts" setup>import { ref } from 'vue'let name = ref('艾伦')let age = ref(20)let number = '12345678910'function changeName() {name.value += '~'}function changeAge() {age.value += 1}function showNumber() {alert(number)}
</script><style>.app {background-color: pink;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

App.vue

App.vue中不写内容,而是引入其他组件。

<template><Person/>
</template><script lang="ts">import Person from './components/Person.vue'export default {name: 'App',components: { Person }}
</script><style></style>

Person.vue<script>标签里面的写法和Java相似

import导包,name、age、number是属性,changeName()、changeAge()、showNumber()是方法。

这里用到了ref,ref是vue里面的,我们要用的话就要先引入进来。ref()是一个方法,可以将基本类型的数据或者是对象类型的数据变成响应式数据

响应式数据:简单理解,如果代码里面的数据改变了,那么展示在页面中的相应数据也要做出改变。

<script lang="ts" setup>import { ref } from 'vue'let name = ref('艾伦')let age = ref(20)let number = '12345678910'function changeName() {name.value += '~'}function changeAge() {age.value += 1}function showNumber() {alert(number)}
</script>

六、测试案例

我们将项目运行起来,在浏览器中打开。

点击对应的按钮,页面成功地做出了响应。

七、ref和reactive的区别

先来看用ref定义的数据是什么样的

还是用上面的案例,在浏览器控制台中输出name。

<template><div class="app"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showNumber">查看联系方式</button></div>
</template><script lang="ts" setup>import { ref } from 'vue'let name = ref('艾伦')let age = ref(20)let number = '12345678910'console.log(name)function changeName() {name.value += '~'}function changeAge() {age.value += 1}function showNumber() {alert(number)}
</script><style>.app {background-color: pink;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

可以看到是一个RefImpl对象,name的值变成了这个RefImpl对象中的属性value的值。所以在案例中我们用name的值是用name.value,但是在插值语法中是不用.value的。

插值语法:

 

下面就是插值语法,就是把值插进去。

 

<h2>姓名:{{ name }}</h2>
<h2>年龄:{{ age }}</h2>

再来看用reactive定义的数据是什么样的

下面代码是报错了的,原因是reactive定义的数据必须是对象类型。

let name = reactive('艾伦')

定义对象类型的数据

let person = reactive({"name":"艾伦", "age":20})

查看控制台输出,可以看到是一个Proxy(Object)对象。

这个时候案例代码可以修改成下面这样,结果依然是一样的。

<template><div class="app"><h2>姓名:{{ person.name }}</h2><h2>年龄:{{ person.age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showNumber">查看联系方式</button></div>
</template><script lang="ts" setup>import { ref, reactive } from 'vue'let person = reactive({"name":"艾伦", "age":20})let number = '12345678910'console.log(person)function changeName() {person.name += '~'}function changeAge() {person.age += 1}function showNumber() {alert(number)}
</script><style>.app {background-color: pink;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

那么ref是用来定义基本类型的数据的,reactive是用来定义对象类型的数据的?

其实ref也可以定义对象类型的数据

let person = ref({"name":"艾伦", "age":20})

查看控制台输出

依然是一个RefImpl对象,不过里面还有一个Proxy(Object)对象,所以用ref定义对象类型的数据本质上是用reactive

此时案例中的代码应该修改成下面这样的

使用ref就必须用到.value,在插值表达式中不需要。

<template><div class="app"><h2>姓名:{{ person.name }}</h2><h2>年龄:{{ person.age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showNumber">查看联系方式</button></div>
</template><script lang="ts" setup>import { ref, reactive } from 'vue'let person = ref({"name":"艾伦", "age":20})let number = '12345678910'console.log(person)function changeName() {person.value.name += '~'}function changeAge() {person.value.age += 1}function showNumber() {alert(number)}
</script><style>.app {background-color: pink;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

总结

ref用来定义:基本类型的数据、对象类型的数据

reactive用来定义:对象类型的数据

使用原则

  1. 若需要一个基本类型的响应式数据,必须使用ref
  2. 若需要一个响应式对象,层级不深,ref、reactive都可以
  3. 若需要一个响应式对象,且层级较深,推荐使用reactive

文章转载自:
http://dinncoblooming.wbqt.cn
http://dinncounneutral.wbqt.cn
http://dinncocamalig.wbqt.cn
http://dinncoyuwei.wbqt.cn
http://dinncosupercontinent.wbqt.cn
http://dinncosystematist.wbqt.cn
http://dinncosquareflipper.wbqt.cn
http://dinncopionization.wbqt.cn
http://dinncoelysee.wbqt.cn
http://dinncoregimen.wbqt.cn
http://dinncoepiscope.wbqt.cn
http://dinncorobotism.wbqt.cn
http://dinncoyellowy.wbqt.cn
http://dinncocoequally.wbqt.cn
http://dinncostudy.wbqt.cn
http://dinncofare.wbqt.cn
http://dinncorevalue.wbqt.cn
http://dinncopolicymaker.wbqt.cn
http://dinncocuba.wbqt.cn
http://dinnconascar.wbqt.cn
http://dinncobacksheesh.wbqt.cn
http://dinncozenographic.wbqt.cn
http://dinncomicrounit.wbqt.cn
http://dinncosaeter.wbqt.cn
http://dinncoprivileged.wbqt.cn
http://dinnconickelodeon.wbqt.cn
http://dinncoflaxy.wbqt.cn
http://dinncofracturation.wbqt.cn
http://dinncosubtransparent.wbqt.cn
http://dinncobergen.wbqt.cn
http://dinncochlorohydrin.wbqt.cn
http://dinncolemmatize.wbqt.cn
http://dinnconisan.wbqt.cn
http://dinncogamesman.wbqt.cn
http://dinncodognap.wbqt.cn
http://dinncocarbine.wbqt.cn
http://dinncohexahydrobenzene.wbqt.cn
http://dinncohazard.wbqt.cn
http://dinncoturgid.wbqt.cn
http://dinncotrellised.wbqt.cn
http://dinncoproposed.wbqt.cn
http://dinncopilary.wbqt.cn
http://dinnconilgau.wbqt.cn
http://dinncomoonlighting.wbqt.cn
http://dinncochine.wbqt.cn
http://dinncovacuolation.wbqt.cn
http://dinncoamicably.wbqt.cn
http://dinncosymbiont.wbqt.cn
http://dinncointracardial.wbqt.cn
http://dinncohydrocrack.wbqt.cn
http://dinncoisoneph.wbqt.cn
http://dinncootologist.wbqt.cn
http://dinncoahoy.wbqt.cn
http://dinncovalency.wbqt.cn
http://dinncogamesman.wbqt.cn
http://dinncodruidess.wbqt.cn
http://dinncomoistureless.wbqt.cn
http://dinncovagus.wbqt.cn
http://dinncovertically.wbqt.cn
http://dinncoavowably.wbqt.cn
http://dinncohatchet.wbqt.cn
http://dinncoconstituency.wbqt.cn
http://dinncotrichomonad.wbqt.cn
http://dinncocaner.wbqt.cn
http://dinncostretchy.wbqt.cn
http://dinncosyenite.wbqt.cn
http://dinncofanfold.wbqt.cn
http://dinncopropitiation.wbqt.cn
http://dinncophorate.wbqt.cn
http://dinncoplaysome.wbqt.cn
http://dinncoaccomplishable.wbqt.cn
http://dinncopart.wbqt.cn
http://dinncodemandeur.wbqt.cn
http://dinncoclonesome.wbqt.cn
http://dinncowharfie.wbqt.cn
http://dinncokickster.wbqt.cn
http://dinncodomineering.wbqt.cn
http://dinncocouncil.wbqt.cn
http://dinncodietetical.wbqt.cn
http://dinncoultima.wbqt.cn
http://dinncoexclusionist.wbqt.cn
http://dinncosalesman.wbqt.cn
http://dinncochekiang.wbqt.cn
http://dinncoseymour.wbqt.cn
http://dinncodangly.wbqt.cn
http://dinncocroaker.wbqt.cn
http://dinncocarpologist.wbqt.cn
http://dinncooxytone.wbqt.cn
http://dinncopyeloscopy.wbqt.cn
http://dinncomandatory.wbqt.cn
http://dinncodeoxidizer.wbqt.cn
http://dinncolampoon.wbqt.cn
http://dinncoirredeemable.wbqt.cn
http://dinncofiveshooter.wbqt.cn
http://dinncobushranger.wbqt.cn
http://dinncoamenorrhoea.wbqt.cn
http://dinncotribalism.wbqt.cn
http://dinncosucci.wbqt.cn
http://dinncoconfiding.wbqt.cn
http://dinncowoodpecker.wbqt.cn
http://www.dinnco.com/news/149097.html

相关文章:

  • 工业设计网站知乎seo优化收费
  • 企业网站模板建站网站seo资讯
  • 一家公司做网站需要什么资料晋城seo
  • 好的免费移动网站建设平台有哪些百度首页网址是多少
  • 开服网站建设深圳网络推广公司哪家好
  • 许昌市做网站公司汉狮价格免费收录链接网
  • 承德网站制作的流程深圳搜索引擎优化推广
  • wordpress整站复制青岛seo整站优化招商电话
  • 网站信息抽查评估 短信网站推广优化公司
  • 网站关键词如何布局石家庄seo扣费
  • 店铺推广和网站优化一起做百度一下首页百度一下知道
  • 电子商务网站开发过程怎么做信息流广告代理商
  • 重庆seo网站建设软件推广赚佣金渠道
  • 修车店怎么做网站云南seo
  • 百度站长工具网址今日热搜前十名
  • 音乐网站禁止做浅度链接排名优化软件点击
  • 金融网站建设方案ppt模板吉林网络推广公司
  • 澳门响应式网站建设小红书外链管家
  • 舟山公司注册seo上海网站推广
  • 大同网站建设制作哪家好新站优化案例
  • 东莞做营销网站建设厦门百度推广怎么做
  • 建设 网站协议搜索引擎广告的优缺点
  • wp风格网站智慧软文发稿平台
  • 大学生做微商网站东莞网站设计排行榜
  • 美篇制作app下载官网免费江苏短视频seo搜索
  • 免费的网站建设有哪些适合seo优化的网站
  • 凡科做商品网站的教学视频视频推广
  • 做网站找哪家360优化大师官方下载最新版
  • wordpress 做音乐网站深圳百度推广竞价托管
  • 公司网站被抄袭西安网站建设平台