index.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <template>
  2. <div>
  3. <Header></Header>
  4. 首页
  5. <img :src="pic" alt="" />
  6. <h1>{{title}}</h1>
  7. <input type="text" v-model="hi" />
  8. <!-- <input type="text" value="20" @input="" /> -->
  9. <!-- <span v-model=""></span> -->
  10. <!--
  11. 1.v-if v-for 优先级
  12. 2.为什么data用函数
  13. 3.vue2的响应式:
  14. Object.defineProperty()数据劫持 对data中的所有属性进行遍历 添加getter和setter
  15. 发布订阅模式:
  16. 依赖管理器:Dep
  17. 订阅者:Watcher
  18. 观察者(Observer)会遍历所有的data Object.defineProperty()劫持所有的属性,给每一个属性
  19. 添加Dep
  20. 渲染:render函数会访问所有的响应式的属性,触发的是getter,Dep收集所有的依赖,告诉Watcher,页面渲染
  21. 修改:触发setter方法,Dep收集所有的依赖,通知订阅,告知Watcher,执行更新,页面渲染
  22. MVVM:Model View ViewModel
  23. 4.v-model原理
  24. 5.v-if v-show
  25. -->
  26. <van-button type="default">默认按钮</van-button>
  27. <van-button type="primary">主要按钮</van-button>
  28. <van-button type="info">信息按钮</van-button>
  29. <van-button type="warning">警告按钮</van-button>
  30. <van-button type="danger">危险按钮</van-button>
  31. <van-icon name="chat" dot />
  32. <van-icon name="chat" info="9" />
  33. <van-icon name="chat" info="99+" />
  34. <br /><br />
  35. <!--
  36. selectable文本是否可选
  37. -->
  38. <text selectable>用于包裹文本内容</text>
  39. <br /><br />
  40. <text space="emsp">今 好</text>
  41. <br /><br />
  42. <text space="ensp">今 好</text>
  43. <br /><br />
  44. <text space="nbsp">今 好</text>
  45. <br /><br />
  46. <icon type="success" size="40"/>
  47. <br /><br />
  48. <span class="iconfont icon-shoucang"></span>
  49. <van-button type="info" @click="toMy">我的</van-button>
  50. <van-button type="info" @click="getMain">获取</van-button>
  51. <!--
  52. <button @click="handleOut">输出</button>
  53. <input type="text" @input="handleChange"> -->
  54. </div>
  55. </template>
  56. <script>
  57. import Header from '../../components/header.vue';
  58. export default{
  59. data() {
  60. return {
  61. title:"Hello world",
  62. pic: '../../static/1.jpg',
  63. hi:"hi"
  64. }
  65. },
  66. components:{
  67. Header
  68. },
  69. methods:{
  70. handleOut(event) {
  71. console.log("输出")
  72. },
  73. handleChange(event) {
  74. console.log("输出",event)
  75. },
  76. getMain() {
  77. uni.getStorage({
  78. key:"id",
  79. success(res) {
  80. console.log(res,'获取成功')
  81. }
  82. })
  83. // console.log(uni.getStorage("id"))
  84. },
  85. toMy() {
  86. // tabbar
  87. // uni.switchTab({
  88. // url:"/pages/my/index"
  89. // })
  90. // 非tabbar
  91. // uni.navigateTo({
  92. // url:"/pages/detail/index"
  93. // })
  94. //
  95. // uni.reLaunch({
  96. // url:'/pages/detail/index'
  97. // })
  98. // uni.redirectTo({
  99. // url:'/pages/detail/index'
  100. // })
  101. // uni.navigateBack()
  102. // 设置数据缓存
  103. uni.setStorage({
  104. key:"id",
  105. data: 800,
  106. success() {
  107. console.log("存储成功")
  108. }
  109. })
  110. }
  111. }
  112. }
  113. </script>
  114. <style>
  115. </style>