声明:这只是我个人的学习条记(黑马),供以后复习用 。一天学一点,随时学随时更新。明天会更好的!
这里只给代码,不给运行效果,看不出来代码的作用我也该进厂了。。。。。
Day1 使用create-vue创建项目。
1.检查版本。
2.创建项目
可以用这个切回国内镜像源
- npm config set registry https://registry.npmmirror.com
复制代码 3. 安装依靠,启动项目
4.1写法
原始复杂写法setup写法:必须return
- <!-- 开关:写组合式组件 -->
- <script>
- export default {
- setup() {
- console.log('setup')
- const message = 'hello world'
- const logMessage = () => {
- console.log(message)
- }
- return {//只有return返回一个对象,对象中的属性和方法,都可以在模板中使用
- message,
- logMessage,
- }
- },
- beforeCreate() {
- console.log('beforeCreate')
- },
- }
- </script>
- <template>
- <!-- 不再要求唯一的根元素 -->
- <div>
- {
- { message }}
- <button @click="logMessage">log</button>
- </div>
- </template>
- <style scoped></style>
复制代码 简单的语法糖写法
- <script setup>
- const message = 'hello world'
- const logMessage = () => {
- console.log(message)
- }
- </script>
- <template>
- <!-- 不再要求唯一的根元素 -->
- <div>
- {
- { message }}
- <button @click="logMessage">log</button>
- </div>
- </template>
- <style scoped></style>
复制代码 注:1.setup选项在beforeCreate钩子之前自动实行
2.setup中的this不指向组件实例了,指向undefined
4.2 函数调用返反响应式数据
reactive()接受对象范例数据的参数传入并返回一个响应式的对象
- <script setup>
- // 1.导入函数
- import { reactive } from 'vue'
- // 2.执行函数 传入一个对象类型的函数 变量接受
- const state = reactive({
- count: 0
- })
- const setCount = () => {
- state.count++
- }
- </script>
- <template>
- <!-- 不再要求唯一的根元素 -->
- <div>
- <button @click='setCount'>
- {
- { state.count }}
- </button>
- </div>
- </template>
- <style scoped></style>
复制代码 ref()接受简单范例或对象范例数据的参数传入并返回一个响应式的对象
脚当地区修改ref的响应式数据 必须通过value属性
- <script setup>
- // // 1.导入函数
- // import { reactive } from 'vue'
- // // 2.执行函数 传入一个对象类型的函数 变量接受
- // const state = reactive({
- // count: 0
- // })
- // const setCount = () => {
- // state.count++
- // }
- //1.导入ref 函数
- import { ref } from 'vue'
- //2.执行函数 传入一个简单类型或者对象类型的参数 变量接受
- const count = ref(0)
- console.log(count)
- const setCount = () => {
- //脚本区域修改ref的响应式数据 必须通过value属性
- count.value++
- }
- </script>
- <template>
- <!-- 不再要求唯一的根元素 -->
- <div>
- <button @click='setCount'>
- {
- { count }}
- </button>
- </div>
- </template>
- <style scoped></style>
复制代码 4.3计算属性函数
computed 返回计算后的数据(不应该有副作用)
- <script setup>
- // 1.导入computed
- import { computed } from 'vue'
- import { ref } from 'vue'
- const list = ref([1, 2, 3, 4, 5, 6, 7, 8])
- // 2.使用computed return计算后的值 变量接受
- const computedList = computed(() => {
- return list.value.filter(item => item > 2)
- })
- setTimeout(() => {
- list.value.push(9, 10)
- }, 3000);
- </script>
- <template>
- <!-- 不再要求唯一的根元素 -->
- <div>
- 原始响应式数据-{
- { list }}
- </div>
- <div>
- 计算后的响应式数据-{
- { computedList }}
- </div>
- </template>
- <style scoped></style>
复制代码 4.4watch函数
侦听一个或多个数据的变革,数据变革时实行回调函数(参数:immediate(立即实行),deep(深度侦听))
- <script setup>
- // import {ref,watch} from 'vue'
- // const count = ref(0)
- // const setCount = () => {
- // count.value++
- // }
- // //调用watch方法,监听count的变化
- // //watch 里面ref对象不需要加.value属性
- // watch(count, (newValue, oldValue) => {
- // console.log(`count发生了变化,老值是${oldValue},新值是${newValue}`);
- // })
- import { ref, watch } from 'vue'
- const count = ref(0)
- const changeCount = () => {
- count.value++
- }
- const name = ref('cp')
- const changeName = () => {
- name.value = 'pc'
- }
- watch(
- [count,name],
- (
- [newValue,newName], [oldValue,oldName]
- ) => {
- console.log(`count或者name发生了变化,老值是${[oldValue,oldName]},新值是${[newValue,newName]}`);
- })
- </script>
- <template>
- <!-- 不再要求唯
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |